邮件内容在 Joomla 3 中显示为 html 代码

2022-01-06 00:00:00 email php joomla joomla3.2

我编写了一个发送邮件的脚本,它被发送到正确的电子邮件地址,但以 HTML 代码的形式,我不知道为什么它不工作,因为相同的代码在 Joomla 2.5 中工作正常.

I have written a script for sending a mail, it gets delivered to the correct email address but in them form of HTML code, I don't know why it's not working as same code is working fine in Joomla 2.5.

这是我的代码:

$mailer = JFactory::getMailer();
$config = JFactory::getConfig();
$subject = 'Account Created';
$from   = $config->get('mailfrom');
$fromname = $config->get( 'fromname' ); 

$body = "<p>Hello Test F,</p><br/><p>Thank you for registering at Deals&offers. Your account is created and activated.</p><br/>You may login to ".JURI::root().'index.php'." using the following username and password:</br><p>Username: ".$fname."</p><p>Password: ".$pwd."/p><br/><p><b>Note:</b> It is recomended to change your password after first login.</p>";

$sender = array( 
    $from,
    $fromname
);

$mailer->setSender($sender); 

$mailer->addRecipient($buyerEmail);

$mailer->setSubject($subject);

$mailer->setBody($body);

$send = $mailer->Send();

if ( $send !== true ) {
    echo 'Error sending email: ' . $send->message;
} else {
    echo 'Mail sent';
}

我也像下面这样尝试过,但得到了相同的结果.

I have also tried like below, but got same result.

JFactory::getMailer()->sendMail($from,$fromname,$buyerEmail, $subject, $body);

我在邮件中得到的输出是:

the output I got in the mail is:

<p>Hello Test F,</p><br/><p>Thank you for registering at Deals&offers. Your account is created and activated.</p><br/>You may login to http://server.ashoresystems.com/~dealsand/index.php using the following username and password:</br><p>Username: rowdy</p><p>Password: lX1XZghF/p><br/><p><b>Note:</b> It is recomended to change your password after first login.</p>

我不确定我做错了什么.如果有人有任何解决方案,请帮忙.

I am not sure what I am doing wrong. If anyone has any solution please help.

推荐答案

试试这个..

对于你的第一种方法......你必须设置

For your first method...You have to set

$mailer->isHTML(true);

参考:http://docs.joomla.org/Sending_email_from_extensions

对于您的第二种方法...

For your second method...

发送邮件功能:

sendMail($from, $fromname, $recipient, $subject, $body, $htmlmode=0, $cc=null, $bcc=null, $attachment=null, $replyto=null, $replytoname=null )

所以你的代码应该是

JFactory::getMailer()->sendMail($from,$fromname,$buyerEmail, $subject, $body,true);

相关文章