如何在托管的Google Apps上使用Zend_Mail_Transport_Smtp?

时间:2009-04-10 07:30:16

标签: email zend-framework smtp gmail dreamhost

所以我的印象是,如果我在发送大量电子邮件时不使用Zend_Mail_Transport_Smtp,那么会发生不好的事情。问题是......我无法弄清楚如何设置它。我正在为我的域名使用Google Apps托管电子邮件。因此,要访问我的电子邮件,请访问mail.mydomain.com,它会将我带到谷歌登录页面。

这是我正在使用的代码,但它不起作用。

$config = array('ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => 'webmaster@mydomain.com', 'password' => 'password');
$smtpConnection = new Zend_Mail_Transport_Smtp('mail.mydomain.com', $config);
  • 使用“mail.mydomain.com”我收到“连接超时”错误(这让我觉得使用它是错误的。
  • 使用“smtp.mydomain.com”我收到“无法打开套接字”错误。

我做错了什么?

2 个答案:

答案 0 :(得分:14)

由于您是通过Gmail发送电子邮件,因此您应该使用“smtp.gmail.com”而不是您的域名。

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

答案 1 :(得分:2)

更多参考。使用远程端的端口扫描器检查端口是否打开,如果他们回复数据包则进行测试,有时端口25不工作,因此电子邮件失败,以及SSL或TLS。

$config = array(
  'ssl' => 'ssl', //TLS = tcp://    use port 25      
                  //SSL = ssl://    use port 465 or 587
  'port' => 465,
  'auth' => 'login',
  'username'=> 'x',
  'password'=> 'b/c',
);
$tr = new Zend_Mail_Transport_Smtp('email-smtp.us-east-1.amazonaws.com', $config);
Zend_Mail::setDefaultTransport($tr);