繁体   English   中英

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

[英]Send Email using Outlook through PHP Pear

我正在尝试使用PHP Pear发送电子邮件。 当我使用具有以下设置的Gmail发送电子邮件时,它可以工作:

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

但是在进行这项工作之前,我必须“允许不太安全的应用程序”访问我的帐户,您可以在此处阅读有关操作方法的信息。

我尝试使用具有以下设置的Outlook帐户:

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

但是我得到这个错误:

无法连接到ssl://smtp.office365.com:587 [SMTP:无法连接套接字:fsockopen():无法连接到ssl://smtp.office365.com:587(未知错误)(代码:- 1,回复:)

我检查了Microsoft 官方文章中有关其SMTP设置的信息。 因此,我认为自己的设置正确,但是无法正常工作。

我想念什么吗? 为什么会出现此错误? 在允许第三方应用发送电子邮件之前,是否需要在Outlook帐户中(例如Gmail)进行配置?

这可能无济于事,但您的帖子标题只是说过Outlook帐户,但链接和smtp设置是指Office365 for Business帐户。 我无法说明该企业帐户,但是如果您实际上拥有个人Outlook.com帐户,则设置会有所不同。 并且,您必须更改帐户的选项,才能像使用gmail一样启用pop / smtp访问。

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

但是,摘要是smtp服务器是smtp-mail.outlook.com,要在Outlook帐户中启用pop / smtp,请选择选项>管理帐户>使用POP连接设备和应用。

更新:如果您实际上是在使用企业帐户,则应检查该文章是否声称其有效: https : //stackoverflow.com/a/26004690/2891120

他代码中的关键项是主机名前面没有“ tls://”。 我有一个消费者前景帐户,并且使用tls://前缀遇到了与您类似的套接字故障。 如果删除该前缀,我会走得更远(在工厂中设置debug = true),但稍后会因身份验证失败而失败。 我改用5.2.16 PHPMailer来成功发送邮件,但是标头让我担心垃圾邮件的拒绝率(没有DKIM,对于我的AWS实体,SPF失败,并警告-f等)。 而且,电子邮件的确保存在我其他测试收件人@ outlook.com的垃圾文件夹中。 但是我离题了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM