Laravel 无法使用office365设置发送SMTP邮件

Laravel 无法使用office365设置发送SMTP邮件,laravel,email,outlook,smtp,office365,Laravel,Email,Outlook,Smtp,Office365,我使用SMTP邮件发送邮件使用Laravel。除了office365邮件设置之外,其他一切都工作正常 我使用的设置如下: SMTP HOST = smtp.office365.com SMTP PORT = 587 SMTP ENCRYPTION = tls SMTP USER = username(email) SMTP PASS = password 我得到的错误是: 554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException

我使用SMTP邮件发送邮件使用Laravel。除了office365邮件设置之外,其他一切都工作正常

我使用的设置如下:

SMTP HOST = smtp.office365.com
SMTP PORT = 587
SMTP ENCRYPTION = tls
SMTP USER = username(email)
SMTP PASS = password
我得到的错误是:

554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; 由于消息存在永久异常,无法处理消息 无法提交邮件

我已经在谷歌上搜索了很多关于这个错误的信息,每个人都说这个链接很混乱 但我个人没有发现任何混乱后,所有的步骤都提到

我无法登录此电子邮件,因为它是我们的客户电子邮件id,我没有登录权限

我还创建了一个outlook电子邮件id并测试此电子邮件设置。 它很有魅力。 我不知道客户的电子邮件id有什么问题


任何建议都很好。

此错误意味着您在SMTP连接中指定的凭据的用户无法代表
发件人和/或
发件人的
MIME头或
发件人的
SMTP命令中指定的用户提交邮件。

Outlook不提供使用“不同于”地址发送邮件的功能除了您要登录的用户名之外

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


您可以在管理面板中添加一个或多个发件人,然后您可以轻松地从不同的地址发送邮件。

尝试4天后,邮件开始以端口25触发,因此不再尝试使用587或465。尝试使用其他端口号

主机:“smtp.office***.*”, 港口:25, 安全连接:false, 要求:正确, tls:{ 密码:“SSLv3” }, 认证:{ 用户:*, 通过:***
}我面临着类似的问题,我现在就解决了, 您很可能会遇到此问题,因为“身份验证”选项中的“用户”电子邮件与“邮件”选项中的“发件人”电子邮件不同

让用户和来自电子邮件的用户相同,它将为您工作

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));
        });

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

我使用Hotmail并遇到此问题,但通过编辑
MAIL\u FROM\u ADDRESS
MAIL\u用户名

下面是我的环境文件设置

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!)

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

您也可以使用此邮件驱动程序:


您可以在此处指定您的租户有权访问的任何发件人电子邮件地址。已发送的电子邮件也将进入“收件人已发送邮件”文件夹。

有关此问题,请检查jenkins系统管理员电子邮件,它与smtp用户电子邮件相同。

您链接的解决方案是另一个错误“MapExceptionNotFound”。对于您的错误,请查看此处:您的链接也建议相同。但是我找不到上面提到的杂乱内容。您需要使用发件人标题,而不是发件人标题。设置邮件发送的电子邮件地址时,请确保您的客户影响的是哪个邮件头。我已被此错误困扰了整整4天。先生,我会在我生命中的每一天都想着你!!你用来发送代码的电子邮件和你实际发送的电子邮件。这为我解决了问题。我使用的是Wordpress插件Easy WP SMTP,我需要确保“发件人电子邮件地址”和“SMTP用户名”相同。是的,我为这个问题浪费了7天时间。最后,这解决了我的问题。希望你没有浪费你这么多的时间。签出此链接。这太疯狂了。我猜返回错误消息太容易了,比如“发件人的邮件头地址与信封发件人不匹配”或“用户名和电子邮件地址不匹配”。SMTP是一种开放标准。Microsoft不应通过SMTP返回特定于实现的邮件,这些邮件属于服务器日志。理想情况下,我们不知道我们要传送的是什么环境。在我们找到解决方案之前,我们不可能花费数小时来搜索SMTP错误的含义。