使用Outlook通过PHP发送电子邮件梨

问题描述:

我想使用PHP梨发送电子邮件。它的工作原理,当我使用Gmail这个设置发送电子邮件:使用Outlook通过PHP发送电子邮件梨

$smtp = Mail::factory('smtp', array(
    'host' => 'ssl://smtp.gmail.com', 
    'port' => '465', 
    'auth' => true, 
    'username' => '[email protected]', 
    'password' => 'password!2016' 
)); 

但在此之前我做这项工作,我不得不“允许安全性较低的应用程序”来访问我的帐户,你可以阅读如何做到这一点here

我试图用这个设置的Outlook帐户:

$smtp = Mail::factory('smtp', array(
    'host' => 'tls://smtp.office365.com', 
    'port' => '587', 
    'auth' => true, 
    'username' => '[email protected]', 
    'password' => 'greatPasswordComesWithGreatResponsibilities' 
)); 

,但我得到这个错误:

Failed to connect to ssl://smtp.office365.com:587 [SMTP: Failed to connect socket: fsockopen(): unable to connect to ssl://smtp.office365.com:587 (Unknown error) (code: -1, response:)]

我查了official article微软就其SMTP设置。所以我认为我有正确的设置,但它不起作用。

我错过了什么吗?为什么我会得到这个错误?在允许第三方应用发送电子邮件之前,我是否需要在Outlook帐户中配置一些设置,例如Gmail?

这可能不会帮助,但您的文章的标题只是说Outlook帐户,但链接和SMTP设置是指Office365商业帐户。我无法揭示企业帐户,但如果您确实拥有个人Outlook.com帐户,则设置会有所不同。而且,您必须更改帐户才能启用pop/smtp访问权限,就像您使用Gmail一样。

微软官方的文章是: https://support.office.com/en-us/article/Add-your-Outlook-com-account-to-another-mail-app-73f3b178-0009-41ae-aab1-87b80fa94970?ui=en-US&rs=en-US&ad=US&fromAR=1

但是,总结是SMTP服务器smtp-mail.outlook.com并让您的Outlook帐户查找选项弹出/ SMTP>管理帐户>通过POP连接设备和应用程序。

更新: 如果您在实际使用企业帐户,你应该检查这个帖子号称有工作:https://*.com/a/26004690/2891120

在他的代码的关键项目,他并没有“TLS:/ /“在主机名前面。我有一个消费者前景帐户,并使用tls://前缀获得类似的套接字失败。如果我删除了这个前缀,我会得到更多的信息(在工厂中设置debug = true),但随后会失败并导致auth失败。使用5.2.16 PHPMailer代替我成功发送邮件,但标题让我担心垃圾邮件拒绝率(没有DKIM,SPF对我的AWS实体软失效,警告关于-f等)。而且,这封电子邮件最终还是在我的其他测试收件人@ outlook.com的垃圾文件夹中。但我离题了。