mirror of
https://github.com/e107inc/e107.git
synced 2025-07-31 20:00:37 +02:00
First commit of standardized email template.
This commit is contained in:
@@ -217,13 +217,33 @@ function sendTest()
|
||||
else
|
||||
{
|
||||
$mailheader_e107id = USERID;
|
||||
require_once(e_HANDLER.'mail.php');
|
||||
// require_once(e_HANDLER.'mail.php');
|
||||
$add = ($pref['mailer']) ? " (".strtoupper($pref['mailer']).")" : ' (PHP)';
|
||||
$sendto = trim($_POST['testaddress']);
|
||||
if (!sendemail($sendto, LAN_MAILOUT_113." ".SITENAME.$add, str_replace("[br]", "\n", LAN_MAILOUT_114),LAN_MAILOUT_189))
|
||||
|
||||
|
||||
$eml = array();
|
||||
|
||||
$eml['email_subject'] = LAN_MAILOUT_113." ".SITENAME.$add;
|
||||
$eml['email_sender_email'] = null;
|
||||
$eml['email_sender_name'] = null;
|
||||
$eml['email_replyto'] = null;
|
||||
$eml['email_replytonames'] = null;
|
||||
$eml['send_html'] = true;
|
||||
$eml['add_html_header'] = null;
|
||||
$eml['email_body'] = str_replace("[br]", "<br>", LAN_MAILOUT_114);
|
||||
$eml['email_attach'] = null;
|
||||
$eml['template'] = 'default';
|
||||
$eml['e107_header'] = USERID;
|
||||
|
||||
if (!e107::getEmail()->sendEmail($sendto, LAN_MAILOUT_189, $eml))
|
||||
{
|
||||
$mes->addError(($pref['mailer'] == 'smtp') ? LAN_MAILOUT_67 : LAN_MAILOUT_106);
|
||||
}
|
||||
// if (!sendemail($sendto, LAN_MAILOUT_113." ".SITENAME.$add, str_replace("[br]", "\n", LAN_MAILOUT_114),LAN_MAILOUT_189))
|
||||
// {
|
||||
// $mes->addError(($pref['mailer'] == 'smtp') ? LAN_MAILOUT_67 : LAN_MAILOUT_106);
|
||||
// }
|
||||
else
|
||||
{
|
||||
$mes->addSuccess(LAN_MAILOUT_81. ' ('.$sendto.')');
|
||||
|
@@ -337,4 +337,41 @@ $QUICKADDUSER_TEMPLATE = array(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** Standardized v2 template rewrite
|
||||
* Format for individual emails sent by e107 (not bulk emails for now) - a work in progress - bulk could be ported later.
|
||||
* @see e107Email::sendEmail();
|
||||
* Aim: to make email templates follow the same spec. as other templates while remaining as intuitive as other v2 templates in e107.
|
||||
*/
|
||||
|
||||
|
||||
// Default - test email and when no template specified.
|
||||
|
||||
$EMAIL_TEMPLATE['default']['name'] = 'Default';
|
||||
$EMAIL_TEMPLATE['default']['overrides'] = '';
|
||||
$EMAIL_TEMPLATE['default']['header'] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">
|
||||
<html xmlns='http://www.w3.org/1999/xhtml' >
|
||||
<head>
|
||||
<meta http-equiv='content-type' content='text/html; charset=utf-8' />
|
||||
<style>
|
||||
body { padding:10px; background-color: #E1E1E1 }
|
||||
div#body { padding:10px; width: 600px; background-color: #FFFFFF; border-radius: 5px }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id='body'>
|
||||
";
|
||||
|
||||
$EMAIL_TEMPLATE['default']['body'] = "{BODY}";
|
||||
|
||||
$EMAIL_TEMPLATE['default']['footer'] = "<br /><br />
|
||||
{SITENAME=link}
|
||||
</div>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
?>
|
@@ -155,6 +155,7 @@ class e107Email extends PHPMailer
|
||||
|
||||
public $legacyBody = FALSE; // TRUE enables legacy conversion of plain text body to HTML in HTML emails
|
||||
|
||||
|
||||
/**
|
||||
* Constructor sets up all the global options, and sensible defaults - it should be the only place the prefs are accessed
|
||||
*
|
||||
@@ -184,6 +185,7 @@ class e107Email extends PHPMailer
|
||||
}
|
||||
$this->pause_amount = varset($pref['mail_pause'], 10);
|
||||
$this->pause_time = varset($pref['mail_pausetime'], 1);
|
||||
$this->allow_html = varset($pref['mail_sendstyle'],'textonly') == 'texthtml' ? true : 1;
|
||||
|
||||
if (varsettrue($pref['mail_options'])) $this->general_opts = explode(',',$pref['mail_options'],'');
|
||||
if (defined('MAIL_DEBUG')) echo 'Mail_options: '.$pref['mail_options'].' Count: '.count($this->general_opts).'<br />';
|
||||
@@ -577,49 +579,74 @@ class e107Email extends PHPMailer
|
||||
* Where parameter not present, doesn't change it - so can repeatedly call this function for bulk mailing, or to build up the list
|
||||
* (Note that there is no requirement to use this method for everything; parameters can be set by mixing this method with individual setting)
|
||||
*
|
||||
* @param array $paramlist - list of parameters to set/change. Key is parameter name. @see{sendEmail()} for list of parameters
|
||||
* @param array $eml - list of parameters to set/change. Key is parameter name. @see{sendEmail()} for list of parameters
|
||||
*
|
||||
* @return int zero if no errors detected
|
||||
*/
|
||||
public function arraySet($paramlist)
|
||||
public function arraySet($eml)
|
||||
{
|
||||
if (isset($paramlist['SMTPDebug'])) $this->SMTPDebug = $paramlist['SMTPDebug']; // 'FALSE' is a valid value!
|
||||
if (varsettrue($paramlist['email_subject'])) $this->Subject = $paramlist['email_subject'];
|
||||
if (varsettrue($paramlist['email_sender_email'])) $this->From = $paramlist['email_sender_email'];
|
||||
if (varsettrue($paramlist['email_sender_name'])) $this->FromName = $paramlist['email_sender_name'];
|
||||
if (varsettrue($paramlist['email_replyto'])) $this->AddAddressList('replyto',$paramlist['email_replyto'],varsettrue($paramlist['email_replytonames'],''));
|
||||
if (isset($paramlist['send_html'])) $this->allow_html = $paramlist['send_html']; // 'FALSE' is a valid value!
|
||||
if (isset($paramlist['add_html_header'])) $this->add_HTML_header = $paramlist['add_html_header']; // 'FALSE' is a valid value!
|
||||
if (varsettrue($paramlist['email_body'])) $this->makeBody($paramlist['email_body'], $this->allow_html, $this->add_HTML_header);
|
||||
if (varsettrue($paramlist['email_attach'])) $this->attach($paramlist['email_attach']);
|
||||
if (varsettrue($paramlist['email_copy_to'])) $this->AddAddressList('cc',$paramlist['email_copy_to'],varsettrue($paramlist['email_cc_names'],''));
|
||||
if (varsettrue($paramlist['email_bcopy_to'])) $this->AddAddressList('bcc',$paramlist['email_bcopy_to'],varsettrue($paramlist['email_bcc_names'],''));
|
||||
if (varsettrue($paramlist['bouncepath']))
|
||||
|
||||
if(vartrue($eml['template'])) // @see e107_core/templates/email_template.php
|
||||
{
|
||||
$this->Sender = $paramlist['bouncepath']; // Bounce path
|
||||
$this->save_bouncepath = $paramlist['bouncepath']; // Bounce path
|
||||
$tp = e107::getParser();
|
||||
|
||||
if($tmpl = e107::getCoreTemplate('email','default', true, true)) // $EMAIL_TEMPLATE['default']
|
||||
{
|
||||
$filter = array("\n", "\t");
|
||||
$tmpl['header'] = str_replace($filter,'', $tmpl['header']);
|
||||
$tmpl['footer'] = str_replace($filter,'', $tmpl['footer']);
|
||||
|
||||
$eml['email_body'] = ($tp->toEmail($tmpl['header']). str_replace('{BODY}', $eml['email_body'], $tmpl['body']). $tp->toEmail($tmpl['footer']));
|
||||
unset($eml['add_html_header']); // disable other headers when template is used.
|
||||
}
|
||||
if (varsettrue($paramlist['returnreceipt'])) $this->ConfirmReadingTo = $paramlist['returnreceipt'];
|
||||
if (varsettrue($paramlist['email_inline_images'])) $this->addInlineImages($paramlist['email_inline_images']);
|
||||
if (varsettrue($paramlist['email_priority'])) $this->Priority = $paramlist['email_priority'];
|
||||
if (varsettrue($paramlist['e107_header'])) $this->AddCustomHeader("X-e107-id: {$paramlist['e107_header']}");
|
||||
if (varsettrue($paramlist['extra_header']))
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (isset($eml['SMTPDebug'])) $this->SMTPDebug = $eml['SMTPDebug']; // 'FALSE' is a valid value!
|
||||
if (vartrue($eml['email_subject'])) $this->Subject = $eml['email_subject'];
|
||||
if (vartrue($eml['email_sender_email'])) $this->From = $eml['email_sender_email'];
|
||||
if (vartrue($eml['email_sender_name'])) $this->FromName = $eml['email_sender_name'];
|
||||
if (vartrue($eml['email_replyto'])) $this->AddAddressList('replyto',$eml['email_replyto'],vartrue($eml['email_replytonames'],''));
|
||||
if (isset($eml['send_html'])) $this->allow_html = $eml['send_html']; // 'FALSE' is a valid value!
|
||||
if (isset($eml['add_html_header'])) $this->add_HTML_header = $eml['add_html_header']; // 'FALSE' is a valid value!
|
||||
if (vartrue($eml['email_body'])) $this->makeBody($eml['email_body'], $this->allow_html, $this->add_HTML_header);
|
||||
if (vartrue($eml['email_attach'])) $this->attach($eml['email_attach']);
|
||||
if (vartrue($eml['email_copy_to'])) $this->AddAddressList('cc',$eml['email_copy_to'],vartrue($eml['email_cc_names'],''));
|
||||
if (vartrue($eml['email_bcopy_to'])) $this->AddAddressList('bcc',$eml['email_bcopy_to'],vartrue($eml['email_bcc_names'],''));
|
||||
|
||||
if (vartrue($eml['bouncepath']))
|
||||
{
|
||||
if (is_array($paramlist['extra_header']))
|
||||
$this->Sender = $eml['bouncepath']; // Bounce path
|
||||
$this->save_bouncepath = $eml['bouncepath']; // Bounce path
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (vartrue($eml['returnreceipt'])) $this->ConfirmReadingTo = $eml['returnreceipt'];
|
||||
if (vartrue($eml['email_inline_images'])) $this->addInlineImages($eml['email_inline_images']);
|
||||
if (vartrue($eml['email_priority'])) $this->Priority = $eml['email_priority'];
|
||||
if (vartrue($eml['e107_header'])) $this->AddCustomHeader("X-e107-id: {$eml['e107_header']}");
|
||||
if (vartrue($eml['extra_header']))
|
||||
{
|
||||
foreach($paramlist['extra_header'] as $eh)
|
||||
if (is_array($eml['extra_header']))
|
||||
{
|
||||
foreach($eml['extra_header'] as $eh)
|
||||
{
|
||||
$this->addCustomHeader($eh);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->addCustomHeader($paramlist['extra_header']);
|
||||
$this->addCustomHeader($eml['extra_header']);
|
||||
}
|
||||
}
|
||||
|
||||
if (varset($paramlist['wordwrap'])) $this->WordWrap = $paramlist['wordwrap'];
|
||||
if (varsettrue($paramlist['split'])) $this->SingleTo = ($paramlist['split'] != FALSE);
|
||||
if (varset($eml['wordwrap'])) $this->WordWrap = $eml['wordwrap'];
|
||||
if (vartrue($eml['split'])) $this->SingleTo = ($eml['split'] != FALSE);
|
||||
|
||||
return 0; // No error
|
||||
}
|
||||
@@ -654,6 +681,7 @@ class e107Email extends PHPMailer
|
||||
$eml['extra_header'] - additional headers (format is name: value
|
||||
$eml['wordwrap'] - Set wordwrap value
|
||||
$eml['split'] - If true, sends an individual email to each recipient
|
||||
$eml['template'] - template to use. 'default'
|
||||
|
||||
* @param string $send_to - recipient email address
|
||||
* @param string $to_name - recipient name
|
||||
|
Reference in New Issue
Block a user