使用 ZF2 从 Ubuntu 14.4 机器发送应用邮件的最佳方法

Best method for sending app mail from an Ubuntu 14.4 machine with ZF2

这更像是一个语义问题。

我已经在 Ubuntu 14.4 服务器上设置了一个网络应用程序。我需要我的应用程序来发送邮件。现在过去我只是简单地安装了 postfix 但是,我正在考虑简单地连接到其他地方托管的 SMPT 服务器。

我正在努力用 Ubuntu 和 ZF2 来解决这个问题。

基本上我的邮件代码如下:

use Zend\Mail\Transport\Smtp;
use Zend\Mail\Transport\SmtpOptions;

$mailMessage = new MailMessage();
$mailMessage->setBody($mimeBody);
$mailMessage->setEncoding($this->mailEncoding);
$mailMessage->setFrom($this->mailFrom);
$mailMessage->setTo($this->mailTo);
$mailMessage->setSubject($this->mailSubject);

$options = new SmtpOptions();
$transport = new Smtp($options);
$transport->send($mailMessage);

我在这段代码中的什么位置设置了 SMTP 设置?这应该如何完成?

我试过这样做:

    $options   = new SmtpOptions(array(
        'name' => 'localhost',
        'host' => '12.12.12.1.2',
        'port' => 25,
    ));

我得到的错误是这样的:

无法从 12.12.12.1.2 读取

然后我将其更新为:

$options   = new SmtpOptions(array(
        'name' => 'mail.example.com',
        'host' => '2.12.12.1.21',
        'port' => 25,
    ));

这消除了错误...但是没有电子邮件到达。

有什么想法吗?

不要尝试在您的应用程序中重写 postfix(或 sendmail 等)!请记住,您将需要处理所有错误情况,例如 SMTP 服务器正忙,您将需要处理排队、重试和各种可怕的事情。真的,你的旧方法是理想的:将它传递给本地 MTA,然后完成它。

相信我,我经常看到这种情况:电子邮件丢失,因为应用程序试图做一些实际上不是应用程序工作的事情。做你最擅长的事,把电子邮件留给他们最擅长的电子邮件人员。

如果我看起来脾气暴躁或爱出风头,我深表歉意,我并没有真正回答你的问题 - 我的工作涉及邮件服务器,我经常看到这种情况发生:-)