0

当用户注册时,我正在尝试从我的组件发送邮件。我尝试了所有三个,即 PHPMail、Sendmail 和 SMTP,但都没有。我在 localhost (WampServer 2.2) 中测试它,Joomla 版本是 2.5.4。我不确定这是 WampServer 问题还是 Joomla 或我自己的代码。这是我的代码:

function postmail($name, $receiver){

          jimport('joomla.mail.helper');

          $mailer =& JFactory::getMailer();

          $config =& JFactory::getConfig();
          $sender = array($config->getValue( 'config.mailfrom'),$config->getValue( 'config.fromname' ) );
          $mailer->setSender($sender);

          $recipient = $receiver;
          $mailer->addRecipient($recipient);

          $body   = "<body><br><p>"; 
          $body   .= "<strong>$name,</strong>&nbsp;";   
          $body   .= "</p><br></body>";

          $mailer->isHTML(true);
          $mailer->Encoding = 'base64';
          $mailer->setBody($body);

          $send =& $mailer->Send();

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

它收到错误“无法实例化邮件功能”。

4

2 回答 2

0

要了解问题所在,您确实需要获取错误消息。

改变

//echo 'Error sending email: ' . $send->message;

echo 'Error sending email:'.$send->get('message');

然后再次运行它。您得到的错误应该告诉我们为什么它没有实例化。让我们知道它的内容,以便我们为您提供帮助。

于 2013-03-07T05:19:25.943 回答
0

我相信导致这个问题的原因有很多。但是为了测试,您可以随时通过在此处安装此工具来创建自己的邮件服务器http://www.toolheap.com/test-mail-server-tool/

除了在 joomla 邮件设置中将 localhost 作为 smtp 主机,然后在 web 服务器的 php.ini 中添加 smtp=localhost 之外,您无需进行任何更改。就是这样,它应该工作。

这只是为了测试您的代码是否正确,并且您在 joomla 中使用了正确的邮件设置。如果这不起作用,我相信问题不在您的代码中,而是在您的邮件设置中。

于 2013-02-03T16:03:00.020 回答