我正在使用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有什么问题。
任何建议都会很棒。
答案 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用户电子邮件相同