Zend framework 将Zend Mail与SMTP身份验证一起使用时出错

Zend framework 将Zend Mail与SMTP身份验证一起使用时出错,zend-framework,email,zend-mail,Zend Framework,Email,Zend Mail,我正在尝试创建一个使用SMTP身份验证发送电子邮件的表单,但我一直收到一个错误。我在网上读了很多帖子,这就是我到目前为止提出的代码。有人看到下面的代码有什么问题吗?任何帮助都将不胜感激 谢谢 鲍勃 我会告诉你也许是表格和邮件的部分。提供更好的选项列表,并显示如何通过app.ini文件分配选项 这就是说,假设你的论点是有效的,看起来不错 你抓住了什么例外?您一定收到了错误消息。你能从这台机器远程登录邮件服务器吗?想要消除网络/身份验证问题。如果不知道会出现什么异常,很难说 可能有几个原因,您是否可

我正在尝试创建一个使用SMTP身份验证发送电子邮件的表单,但我一直收到一个错误。我在网上读了很多帖子,这就是我到目前为止提出的代码。有人看到下面的代码有什么问题吗?任何帮助都将不胜感激

谢谢 鲍勃


我会告诉你也许是表格和邮件的部分。提供更好的选项列表,并显示如何通过app.ini文件分配选项

这就是说,假设你的论点是有效的,看起来不错


你抓住了什么例外?您一定收到了错误消息。你能从这台机器远程登录邮件服务器吗?想要消除网络/身份验证问题。

如果不知道会出现什么异常,很难说

可能有几个原因,您是否可以连接到SMTP服务器。。587端口真的开放吗?你有防火墙吗?如果有,它是否会阻止与该端口的连接?你真的确定那些凭证是有效的吗?您是否已尝试手动连接到SMTP服务器

如果没有,请查看如何使用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
);
这些模板是在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>

名称:
出生日期:

Mandril的SMTP使用TLS

在配置数组中启用它

$configSMTP = array(
    'ssl' => 'tls',  
    'port' => 587,  
    'auth' => 'login',  
    'username' => '***',  
    'password' => '***'  
);
$configSMTP = array(
    'ssl' => 'tls',  
    'port' => 587,  
    'auth' => 'login',  
    'username' => '***',  
    'password' => '***'  
);