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

时间:2019-02-20 10:44:59

标签: 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.MapiExceptionSendAsDenied;   由于消息的永久异常,无法处理消息   无法提交消息

我已经在Google上搜索了很多此错误,每个人都这样说到有关混乱的信息 Solution to this error 但按照上述所有步骤操作之后,我个人没有发现任何混乱。

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

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

任何建议都会很棒。

8 个答案:

答案 0 :(得分:5)

我面临类似的问题,并且我现在已经解决了, 您最有可能遇到此问题,因为auth选项中的“用户”电子邮件与mail选项中的“发件人”电子邮件不同

使用户和电子邮件相同,它将为您服务

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

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

答案 1 :(得分:3)

我使用了Hotmail并遇到了此问题,但通过将MAIL_FROM_ADDRESS编辑为与MAIL_USERNAME相同来解决了该问题

下面是我的环境文件设置。

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

完成上述所有操作后

答案 2 :(得分:1)

该错误表示您在SMTP连接中指定其凭据的用户无法代表“发件人/发件人MIME”标题或FROM SMTP命令中指定的用户提交邮件。

答案 3 :(得分:1)

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

主机:“ smtp.office ***。 *”, 端口:25, secureConnection:否, requireTLS:是的, tls:{         密码:“ SSLv3”     }, 验证:{         用户:* ,         通过:***     }

答案 4 :(得分:1)

对我有用的是将 DEFAULT_FROM_EMAIL 设置为 EMAIL_HOST_USER。 使用 Office 365 SMTP 和 Django 3.0.10。

答案 5 :(得分:0)

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

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

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

答案 6 :(得分:0)

您还可以使用以下邮件驱动程序: https://github.com/motze92/office365-mail

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

答案 7 :(得分:0)

对于此问题,请检查jenkins系统管理员电子邮件,该电子邮件与smtp用户电子邮件相同