使用Zend_Mail发送未经身份验证的Google SMTP邮件

时间:2015-11-30 20:13:22

标签: php zend-framework smtp gmail google-apps

我正在尝试为实时生产服务器编写PHP脚本,以检查Google帐户上的开放SMTP中继设置的IP白名单是否正常工作。

由于服务器当前正在运行,我不想更改现有电子邮件解决方案的任何/etc/postfix/main.cf设置,并且我认为我会尝试编写一个可以测试的隔离的Zend_Mail脚本它独立,但我很难让Zend_Mail在没有登录凭据的情况下确认SMTP连接。

我在

上尝试了不同的变体
$domain = 'foo.bar.com';
$config = array('ssl' => 'tls', 'username' => 'noreply@bar.com');
$transport = new Zend_Mail_Transport_Smtp($domain, $config);

Zend_Mail::setDefaultTransport($transport);

$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('noreply@bar.com', 'NoReply');
$mail->addTo('jono@gmail.com', 'jono');
$mail->setSubject('TestSubject');
$mail->send();

但它只会超时,我找不到任何有用的配置选项。

所以问题是,如果在Gmail设置中将IP列入白名单,是否可以通过Google SMTP中继使用Zend_Mail发送邮件而不使用任何登录凭据?如果没有,有没有其他方法通过命令行或其他PHP库执行此操作?

1 个答案:

答案 0 :(得分:0)

尝试像这样更改$ config数组:

$config = array('ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => 'noreply@bar.com', 'password' => 'password');
$smtpConnection = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);