如何在zend 2中发送电子邮件?

时间:2015-01-03 19:26:40

标签: email zend-framework2

这是我的代码:

    $mail = new Mail\Message();
    mail->setBody('This is the text of the email.');
    $mail->setFrom('Freeaqingme@example.org', 'Sender\'s name');
    $mail->addTo('MYEMAIL@gmail.com', 'Name o. recipient');
    $mail->setSubject('TestSubject');

     $transport = new Mail\Transport\Sendmail();
     $x =  $transport->send($mail);
     var_dump($x); exit();

$ x的结果为null。我没有收到任何电子邮件。为什么?

带mail()函数的代码:

                $to = "my_email@gmail.com";
                $subject = "My subject";
                $txt = "Hello world!";
                $headers = "From: webmaster@example.com" . "\r\n";

                $x = mail($to,$subject,$txt,$headers);
                var_dump($x); 

现在var_dump的结果是(bool)true ,但我没有收到任何电子邮件。我也检查垃圾邮件,但它是空的。为什么?我正在使用xampp localhost服务器。

2 个答案:

答案 0 :(得分:0)

interface for send() does not return anything

/**
 * Send a mail message
 *
 * @param \Zend\Mail\Message $message
 * @return
 */
public function send(Mail\Message $message);

如果sendmail发送邮件失败,您可能会遇到异常。至少mail()函数中的所有错误都是captured and collected in a RuntimeException

如果您没有收到消息,可能是由于配置错误mail()。尝试使用mail($to, $subject, $message)邮寄自己并检查是否到达。如果不是(我猜)这不是ZF2问题,而是php / mail问题。

答案 1 :(得分:0)

可能值得通过命令行设置postfix和bug测试你的邮件客户端。

以下内容在设置本地环境时非常有用:http://traumwind.de/tindertraum/archives/local_mail_osx.html