是否可以使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)]
$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 举报,一经查实,本站将立刻删除。