It looks like international characters are displayed correctly in e-mail sent when Manager User is created, but not when Web User is created. I looked into
save_user_processor.php and
save_web_user_processor.php files (in
/manager/processors/) and found that the two
sendMailMessage() functions are different: Manager User processor is using
PHPMailer class (and sends international characters correctly) and Web User processor doesn’t. I tried copying over the function from
save_user_processor.php to
save_web_user_processor.php but couldn’t make the Web User processor send any e-mail at all - not sure what the problem is, could anyone assist please?
Currently, my
sendMailMessage() function in
save_user_processor.php:
function sendMailMessage($email, $uid, $pwd, $ufn) {
global $signupemail_message;
global $emailsubject, $emailsender;
global $site_name, $site_start, $site_url;
global $modx;
$manager_url = $site_url . "manager/";
$message = sprintf($signupemail_message, $uid, $pwd); // use old method
// replace placeholders
$message = str_replace("[+uid+]", $uid, $message);
$message = str_replace("[+pwd+]", $pwd, $message);
$message = str_replace("[+ufn+]", $ufn, $message);
$message = str_replace("[+sname+]", $site_name, $message);
$message = str_replace("[+saddr+]", $emailsender, $message);
$message = str_replace("[+semail+]", $emailsender, $message);
$message = str_replace("[+surl+]", $manager_url, $message);
# include PHP Mailer
include_once "../includes/controls/class.phpmailer.php";
# send form
$mail = new PHPMailer();
$mail->IsMail();
$mail->CharSet = $modx->config['modx_charset'];
$mail->AddAddress($email);
$mail->From = $emailsender;
$mail->FromName = $site_name;
$mail->Subject = $emailsubject;
$mail->Body = $message;
if(!$mail->send()) {
webAlert('An Error occurred: ' . $mail->ErrorInfo);
exit;
}
}
My
sendMailMessage() function in
save_web_user_processor.php:
function sendMailMessage($email, $uid, $pwd, $ufn) {
global $websignupemail_message;
global $emailsubject, $emailsender;
global $site_name, $site_start, $site_url;
$message = sprintf($websignupemail_message, $uid, $pwd); // use old method
// replace placeholders
$message = str_replace("[+uid+]", $uid, $message);
$message = str_replace("[+pwd+]", $pwd, $message);
$message = str_replace("[+ufn+]", $ufn, $message);
$message = str_replace("[+sname+]", $site_name, $message);
$message = str_replace("[+saddr+]", $emailsender, $message);
$message = str_replace("[+semail+]", $emailsender, $message);
$message = str_replace("[+surl+]", $site_url, $message);
# include PHP Mailer
include_once "../includes/controls/class.phpmailer.php";
# send form
$mail = new PHPMailer();
$mail->IsMail();
$mail->CharSet = $modx->config['modx_charset'];
$mail->AddAddress($email);
$mail->From = $emailsender;
$mail->FromName = $site_name;
$mail->Subject = $emailsubject;
$mail->Body = $message;
if(!$mail->send()) {
webAlert('An Error occurred: ' . $mail->ErrorInfo);
exit;
}
}
Thanks a lot!