【问题标题】:How can I send emails using godaddys office 365 email and digital ocean droplet?如何使用 Godaddy Office 365 电子邮件和数字海洋水滴发送电子邮件?
【发布时间】:2018-09-17 18:52:44
【问题描述】:

我需要我们的应用服务器通过 Goddady 上托管的邮件服务器向我们的客户发送电子邮件

我们以https://www.digitalocean.com/community/questions/how-to-solve-emails-problems-after-site-is-migrated-to-digital-ocean中描述的案例作为参考

我们添加了 MX 记录,但邮件不起作用;我们用我们使用的库来附上报告错误:

技术数据

  • 操作系统:ubuntu 16.07
  • 语言:PHP 7.2
  • 邮件库:phpmailer 6.0.5

PHP 邮件配置

$mail->SMTPDebug = 4;
$mail->isSMTP();
$mail->Host =  'smtp.office365.net';
$mail->SMTPAuth = true;
$mail->Username = MAIL_APP1;
$mail->Password = MAIL_APP1_PWD;
$mail->SMTPSecure = 'ssl'; 
$mail->Port = 993; //SMTP_PORT;      

报告的错误

2018-09-14 16:21:51 SERVER - & gt; CLIENT: * OK The Microsoft Exchange IMAP4 service is ready.
[QwBPADIAUABSADAANgBDAEEAMAAwADUANQAuAG4AYQBtAHAAcgBkADAANgAuAHAAcgBvAGQALgBvAHUAdABsAG8AbwBrAC4AYwBvAG0A] * BYE Connection is closed. 13 
2018-09-14 16:21:51 SMTP NOTICE: EOF caught while checking if connected 
SMTP Error: Could not authenticate. 
SMTP Error: Could not authenticate.

实现

新配置:

$mail->SMTPDebug = 4;
$mail->isSMTP();
$mail->DKIM_domain = '127.0.0.1';
$mail->Host =  'smtpout.secureserver.net';
$mail->SMTPAuth = true;
$mail->Username = MAIL_APP1;
$mail->Password = MAIL_APP1_PWD;
$mail->SMTPSecure = 'ssl'; 
$mail->Port = 465; //SMTP_PORT;

新错误:

2018-09-20 01:34:47 Connection: opening to ssl://smtpout.secureserver.net:465, timeout=300, options=array()<br>
2018-09-20 01:34:47 Connection: opened<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;220 p3plsmtpa12-05.prod.phx3.secureserver.net :SMTPAUTH: ESMTP&quot;<br>
2018-09-20 01:34:47 SERVER -&gt; CLIENT: 220 p3plsmtpa12-05.prod.phx3.secureserver.net :SMTPAUTH: ESMTP<br>
2018-09-20 01:34:47 CLIENT -&gt; SERVER: EHLO app.persaerp.com<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;250-p3plsmtpa12-05.prod.phx3.secureserver.net hello [167.99.172.180], secureserver.net&quot;<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;250-HELP&quot;<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;250-AUTH LOGIN PLAIN&quot;<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;250-SIZE 30000000&quot;<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;250-PIPELINING&quot;<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;250-8BITMIME&quot;<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;250 OK&quot;<br>
2018-09-20 01:34:47 SERVER -&gt; CLIENT: 250-p3plsmtpa12-05.prod.phx3.secureserver.net hello [167.99.172.180], secureserver.net250-HELP250-AUTH LOGIN PLAIN250-SIZE 30000000250-PIPELINING250-8BITMIME250 OK<br>
2018-09-20 01:34:47 Auth method requested: UNSPECIFIED<br>
2018-09-20 01:34:47 Auth methods available on the server: LOGIN,PLAIN<br>
2018-09-20 01:34:47 Requested auth method not available: <br>
2018-09-20 01:34:47 Auth method selected: LOGIN<br>
2018-09-20 01:34:47 CLIENT -&gt; SERVER: AUTH LOGIN<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;334 VXNlcm5hbWU6&quot;<br>
2018-09-20 01:34:47 SERVER -&gt; CLIENT: 334 VXNlcm5hbWU6<br>
2018-09-20 01:34:47 CLIENT -&gt; SERVER: aW5mb0BwZXJzYWVycC5jb20=<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;334 UGFzc3dvcmQ6&quot;<br>
2018-09-20 01:34:47 SERVER -&gt; CLIENT: 334 UGFzc3dvcmQ6<br>
2018-09-20 01:34:47 CLIENT -&gt; SERVER: UGVyJGFFUlAyMDE4<br>
2018-09-20 01:34:47 SMTP INBOUND: &quot;535 Authentication Failed for info@persaerp.com. User does not have any relays assigned.&quot;<br>
2018-09-20 01:34:47 SERVER -&gt; CLIENT: 535 Authentication Failed for info@persaerp.com. User does not have any relays assigned.<br>
2018-09-20 01:34:47 SMTP ERROR: Password command failed: 535 Authentication Failed for info@persaerp.com. User does not have any relays assigned.<br>
SMTP Error: Could not authenticate.<br>
2018-09-20 01:34:47 CLIENT -&gt; SERVER: QUIT<br>
2018-09-20 01:34:47 SERVER -&gt; CLIENT: <br>
2018-09-20 01:34:47 SMTP ERROR: QUIT command failed: <br>
2018-09-20 01:34:47 Connection: closed<br>
SMTP Error: Could not authenticate.<br>

【问题讨论】:

  • 您的错误表明您没有针对您的 SMTP 服务进行身份验证。您的库/应用程序是否将身份验证凭据发送到您的邮件服务器?
  • 当然我这样做了,我更改了 mi 配置但又发生了错误

标签: php phpmailer digital-ocean godaddy-api


【解决方案1】:

该错误消息中有一个赠品:The Microsoft Exchange IMAP4 service - 您不应该在 SMTP 连接上看到有关 IMAP 的消息,实际上,您正在连接到端口 993,即 IMAP。您应该使用端口 465 或 587,但是...

正如 PHPMailer 文档所提到的,GoDaddy 默认阻止出站 SMTP,并强制您通过他们自己的邮件服务器进行中继。这打破了许多电子邮件要求,因此您可能希望找到更好的托管服务提供商。

【讨论】:

  • 感谢您的回复,所以这个过程没有确定的方法吗?
  • 这取决于您的具体要求,但例如,您将无法从 GoDaddy 内部的 yahoo 地址发送,因为它会通过 SPF 检查。
  • 我需要知道我的配置是否正常,我将端口更改为 465 并使用 ssl 加密,此服务器 Outlook.office365.com、smtp.office365.com 可以如果有问题,请帮助我进行正确的配置。
  • 这听起来很正确,但您应该只需要$mail-&gt;Host = 'smtp.office365.com';。但是,您仍然会遇到同样的问题,即使您有正确的配置,GoDaddy 也会阻止它,因此您的脚本将失败或超时,您无法从脚本中对此做任何事情。阅读 GoDaddy 关于如何发送电子邮件的文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
  • 2022-09-24
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多