无法使用Office365设置发送SMTP邮件

Mil*_*tel 5 email outlook smtp office365 laravel

我正在使用SMTP邮件通过Laravel发送邮件。除office365邮件设置外,其他所有功能均正常运行。

我使用的设置如下:

SMTP HOST = smtp.office365.com
SMTP PORT = 587
SMTP ENCRYPTION = tls
SMTP USER = username(email)
SMTP PASS = password
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; 由于消息的永久异常而无法处理消息无法提交消息

我已经在Google上搜索了很多此错误,每个人都说过类似此链接的混乱情况。 解决此错误的方法, 但我个人在遵循所有提到的步骤后没有发现任何混乱情况。

我无法登录此电子邮件,因为这是我们的客户电子邮件ID,并且我没有登录权限。

我还创建了一个Outlook电子邮件ID并测试此电子邮件设置。它像魅力一样运作。我不知道客户电子邮件ID有什么问题。

任何建议都很好。

Aru*_*run 15

我遇到了类似的问题,我现在已经解决了,您很可能面临这个问题,因为身份验证选项中的“用户”电子邮件和邮件选项中的“发件人”电子邮件不同

使用户和电子邮件相同,它将为您工作

const transporter = nodemailer.createTransport({
            service: 'outlook',
            port: 587,
            auth: {
                user: 'abcde@outlook.com',
                pass: '******'
            },
            tls: {
                rejectUnauthorized: false
            }
        });


        // setup email data with unicode symbols
        let mailOptions = {
            from: "abcde@outlook.com", // sender address
            to: 'xyz@gmail.com', // list of receivers
            subject: 'Node Contact Request', // Subject line
            text: 'Hello world?', // plain text body
            html: output // html body
        };

        // send mail with defined transport object
        transporter.sendMail(mailOptions, (error, info) => {
            console.log(info);
            if (error) {
                return console.log(error);
            }
            console.log('Message sent: %s', info.messageId);
            console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
        });
Run Code Online (Sandbox Code Playgroud)

如果您的电子邮件未经验证,您可能会收到更多错误


Dmi*_*nko 5

该错误表示您在SMTP连接中指定其凭据的用户无法代表From/ SenderMIME标题或FROMSMTP命令中指定的用户提交邮件。

  • 我被这个错误困扰了整整4天。先生,我会每天想着你的! (2认同)

Mil*_*tel 5

Outlook不提供使用不同于您的用户名登录的地址进行发送。

您需要两个电子邮件地址相同。

您可以在管理面板中添加一个或多个发件人,之后可以轻松地从其他地址进行发送。

  • 这太疯狂了。我想返回类似“发件人标头地址与信封发件人不匹配”之类的错误消息太容易了。或“用户名和电子邮件地址不匹配。” SMTP 是一个开放标准。Microsoft 不应通过 SMTP 返回特定于实现的消息,这些消息属于服务器日志。理想情况下,我们不知道我们要经过什么环境。在我们开始寻找解决方案之前,我们绝对不应该花费数小时来搜索 SMTP 错误的含义。 (8认同)
  • 您用于发送代码的发件人电子邮件以及您实际发送的电子邮件。 (4认同)
  • 这为我解决了问题。我使用的是 WordPress 插件 Easy WP SMTP,我需要确保“发件人电子邮件地址”和“SMTP 用户名”相同。 (3认同)
  • 是的,我为这个问题浪费了7天的时间。最后,这解决了我的问题。希望您没有浪费这么多时间。 (2认同)
  • 您的答案有效,但不幸的是您链接的页面显示“Microsoft 将从 2021 年 5 月 10 日起删除将新帐户连接到 Outlook.com 的功能”。看来他们已经删除了它,我们现在无法添加其他发送地址。 (2认同)

dul*_*ong 5

我使用 Hotmail 并遇到了这个问题,但通过编辑MAIL_FROM_ADDRESS为相同的解决方案MAIL_USERNAME

下面是我设置的 env 文件。

MAIL_MAILER=smtp
MAIL_HOST=smtp-mail.outlook.com
MAIL_PORT=587
MAIL_USERNAME=myemail@hotmail.com (this must be the same as MAIL_FROM_ADDRESS!)
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=myemail@hotmail.com (this must be the same as MAIL_USERNAME!)
Run Code Online (Sandbox Code Playgroud)

完成上述操作后一切正常。