微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP smtp.office365.com用于电子邮件

是否可以使PHP应用程序邮件与Office365集成在一起?

我已经尝试过,但发现此错误

authentication failure [SMTP: SMTP server does not support authentication (code: 250, response: SINPR02CA025.outlook.office365.com Hello [17*.***.***.**] SIZE 78643200 PIPELINING DSN ENHANCEDSTATUSCODES STARTTLS 8BITMIME BINARYMIME CHUNKING)]

和到目前为止我的PHP代码

$host = "smtp.office365.com";
$username = "me@company.com";
$password = "example";

$headers = array(
    'From'          => $from,
    'To'            => $to,
    'Subject'       => $subject,
    'Content-Type'  => 'text/html; charset=UTF-8'
);

$recipients = $to.", ".$bcc;

$smtp = Mail::factory('smtp',
    array ('host' => $host,
    'auth' => true,
    'username' => $username,
    'password' => $password));

$mail = $smtp->send($recipients, $headers, $body);

解决方法:

几点:

>格式为pod ####.outlook.com的电子邮件服务器名称是旧的
标准,虽然它们暂时仍在工作,
由通用smtp.office365.com取代.只是谷歌
“ office365 smtp设置”,您将看到很好的文档.
>您需要根据所找到的文档指定端口587
就像S. Varun所说的那样.
>虽然我还没有审查您的
详细代码,我怀疑您的问题是缺少SSL传输
正在加载.我将描述的修复基于FreeBSD,但是您
应该能够对其进行更改以在Windows上正常工作(有助于了解
您的环境):

>创建一个PHP文件,其中包含从PHP stream_get_transports() documentation借来的以下代码
$xportlist = stream_get_transports();
的print_r($xportlist);
>当您在PHP中执行此文件时(需要存在PHP的命令行界面),如果看不到SSL,则说明您的问题-没有安全的传输
>安装PHP SSL模块(我使用FreeBSD中的端口,所以我转到security / PHP55-openssl并进行干净安装)
>重新启动Apache以确保新模块已加载(理想情况下是正常重启).
>现在,重新运行您的get_transports PHP代码,您应该会看到列出了SSL(除了原始协议外,我还获得了SSL,SSLv3,SSLv2,TLS)
>现在尝试您的电子邮件发送代码,它应该可以工作!

希望这可以帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐