gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:16:07 25 4
gpt4 key购买 nike

Office365可以做PHP应用邮件集成吗?

我试过了,但发现了这个错误:

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来自第 1 项。正如 S. Varun 所说。
  • 虽然我还没有审核您的详细代码我怀疑你的问题是缺少 SSL 传输正在加载。我将描述的修复是基于 FreeBSD 但你应该能够改变它以在 Windows 上工作(有助于了解您的环境):

    1. 创建一个 PHP 文件,其中包含从 PHP stream_get_transports() documentation 借用的以下代码:

      $xportlist = stream_get_transports();
      print_r($xportlist);

    2. 当您在 PHP 中执行此文件时(需要存在 PHP 的命令行界面),如果您没有看到任何 SSL 提及,那么这就是您的问题 -- 没有安全传输

    3. 安装 PHP SSL 模块(我在 FreeBSD 中使用端口,所以我转到 security/php55-openssl 并执行 make install clean)

    4. 重新启动 Apache 以确保加载新模块(理想情况下是正常重新启动)。

    5. 现在重新运行您的 get_transports PHP 代码,您应该会看到列出了 SSL(除了原始协议(protocol)之外,我还有 SSL、SSLv3、SSLv2、TLS)

    6. 现在尝试您的电子邮件发送代码,它应该可以工作!

希望这对您有所帮助!

关于用于电子邮件的 PHP smtp.office365.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com