我正在尝试创建一个使用SMTP身份验证发送电子邮件的表单,但我一直收到错误消息。我在线阅读了很多帖子,这是我到目前为止提出的代码。有没有人看到下面的代码有什么问题?任何帮助将不胜感激。
由于 鲍勃
$configSMTP = array(
'port' => 587,
'auth' => 'login',
'username' => '***',
'password' => '***'
);
$transport = new Zend_Mail_Transport_Smtp('mail.server.com', $configSMTP);
$mail = new Zend_Mail();
$mail->setReplyTo($config['replyto']);
$mail->setBodyText($message);
$mail->setFrom($params[$config['emailID']], $params[$config['nameID']]);
$mail->addTo($config['sendto']);
$mail->setSubject($config['subject']);
try {
$mail->send($transport);
} catch(Exception $ex) {
Mage::getSingleton('core/session')->addError('There was an error submitting your request.');
}
答案 0 :(得分:2)
Mandril的SMTP使用TLS。
http://help.mandrill.com/entries/21738477-What-SMTP-ports-can-I-use-
在配置数组中启用它。
$configSMTP = array(
'ssl' => 'tls',
'port' => 587,
'auth' => 'login',
'username' => '***',
'password' => '***'
);
答案 1 :(得分:0)
可能会指示您使用resource plugins表格Zend Mail。提供更好的选项列表,并显示如何通过app.ini文件分配它们。
那就是说,假设你的论证有效,看起来很好。
你有什么例外?您必须收到错误消息。你能从这台机器telnet到你的邮件服务器吗?想要消除网络/身份验证问题。
答案 2 :(得分:0)
如果不知道你得到了什么例外,很难说。
可能有几个原因,你可以连接到SMTP服务器..端口587真的打开了吗?你有防火墙,如果是的话,它可能会阻止与该端口的连接吗?你确定这些凭证有效吗?您是否尝试过手动连接到SMTP服务器?
如果没有,请查看如何使用Telnet执行此操作:How to test an SMTP server using Telnet
您还可以尝试使用交易电子邮件服务。这样您就不需要管理SMTP服务器,甚至不需要考虑可传递性等。您只需将其外包给其他人。
有各种提供商,其中一些是:
如果您正在使用AlphaMail,您可以使用AlphaMail PHP客户端并发送您的电子邮件,如下例所示:
include_once("comfirm.alphamail.client/emailservice.class.php");
$email_service = AlphaMailEmailService::create()
->setServiceUrl("http://api.amail.io/v1")
->setApiToken("YOUR-ACCOUNT-API-TOKEN-HERE");
$person = new stdClass();
$person->userId = "1234";
$person->firstName = "John";
$person->lastName = "Doe";
$person->dateOfBirth = 1975;
$response = $email_service->queue(EmailMessagePayload::create()
->setProjectId(12345) // You AlphaMail project (determines template, options, etc)
->setSender(new EmailContact("Sender Company Name", "from@example.com"))
->setReceiver(new EmailContact("Joe Doe", "to@example.org"))
->setBodyObject($person) // Any serializable object
);
使用Comlang模板语言在AlphaMail仪表板中构建模板。这意味着您可以随时轻松编辑电子邮件,而无需深入了解代码。 Comlang中的模板类似于:
<html>
<body>
<b>Name:</b> <# payload.firstName " " payload.lastName #><br>
<b>Date of Birth:</b> <# payload.dateOfBirth #><br>
<# if (payload.userId != null) { #>
<a href="/sign-up">Sign Up Free!</a>
<# } else { #>
<a href="/login?id=<# payload.userId #>">Sign In</a>
<# } #>
</body>
</html>