Я использую почту 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; Failed to process message due to a permanent exception with message Cannot submit message
Я уже много искал в Google эту ошибку, все говорят о беспорядке, таком как эта ссылка. Решение этой ошибки Но я лично не нахожу никакого беспорядка после выполнения всех упомянутых шагов.
Я не могу войти в этот адрес электронной почты, так как это идентификатор электронной почты нашего клиента, и у меня нет разрешения на вход.
Я также создал один идентификатор электронной почты Outlook и проверил эту настройку электронной почты. Это сработало как шарм. Я не знаю, что не так с идентификатором электронной почты клиента.
Любые предложения были бы замечательными.
Ваша ссылка также говорит о том же. Но я не могу найти беспорядок, как уже упоминалось
Вам нужно использовать заголовок Sender, а не заголовок From. Убедитесь, на какой заголовок влияет ваш клиент, когда вы устанавливаете адрес электронной почты, с которого отправляется почта.






Эта ошибка означает, что пользователь, учетные данные которого вы указали в SMTP-соединении, не может отправлять сообщения от имени пользователя, указанного в заголовках From и/или Sender MIME или команде FROM SMTP.
Я застрял с этой ошибкой в течение 4 полных дней. Я буду думать о вас каждый день своей жизни, сэр!!
Outlook не позволяет отправлять сообщения с использованием адреса, отличного от вашего имени пользователя, для входа в систему.
Вам нужно, чтобы оба адреса электронной почты были одинаковыми.
Вы можете добавить одного или нескольких отправителей в панель администратора, после чего вы сможете легко отправлять сообщения с разных адресов.
оба адреса электронной почты одинаковы?
Из электронной почты, которую вы используете для отправки в коде, и из электронной почты, которую вы фактически отправляете.
Это решило проблему для меня. Я использовал плагин Wordpress Easy WP SMTP, и мне нужно было убедиться, что «От адреса электронной почты» и «Имя пользователя SMTP» совпадают.
Да, я потратил свои 7 дней на эту проблему. Наконец, это решает мою проблему. Надеюсь, вы не зря потратили столько времени.
как добавить одного или нескольких отправителей в Outlook?
Проверьте эту ссылку. support.office.com/ru-ru/article/…
За этот пост нужно проголосовать и защитить его для дальнейшего использования! Точное решение конкретной проблемы.
ОМГ, спасибо большое!!!!!!!! то, что я сделал в Laravel, просто изменил конфигурацию/почту с
Лучший ответ, Милинд Патель.
Я люблю этот пост! Расшифровать его на первый взгляд было непросто. Но как только я понял, что он имел в виду, я почувствовал удовлетворение.
Это безумие. Я думаю, слишком просто вернуть сообщение об ошибке, например «Адрес заголовка не соответствует отправителю конверта». или «Имя пользователя и адрес электронной почты не совпадают». SMTP является открытым стандартом. Microsoft не должна возвращать конкретные сообщения о реализации через SMTP, они принадлежат журналам сервера. В идеале мы бы понятия не имели, через какую среду мы отправляем. Мы ни в коем случае не должны часами искать значение ошибки SMTP, прежде чем мы сможем начать искать решение.
Возьми еще 10 баллов, Ты гений ха-ха!
Спасибо, это было гениально
@imclean Это еще хуже! Мало того, что MS не должна возвращать сообщение, зависящее от реализации, но и Postfix говорит мне warning: smtp.office365.com[40.100.175.146]:587: response longer than 2048: , что подразумевает, что это даже не совсем законно...
@Auspex Каков полный ответ, включая код ошибки? Я не уверен, что здесь применимо, но строки ответа могут состоять из 512 октетов (4096 бит). Вероятно, это можно настроить в Postfix. Эта ошибка появляется в ответ на ошибку, указанную выше?
Ваш ответ работает, но, к сожалению, на странице, на которую вы ссылаетесь, написано: «Microsoft уберет возможность подключать новые учетные записи к Outlook.com с 10 мая 2021 года». Вроде бы его уже удалили и мы не можем сейчас добавить другие адреса отправки.
После попыток в течение 4 дней почта начала запускаться с портом: 25, поэтому вместо попыток с 587 или 465. Попробуйте с другими номерами портов.
хост: "smtp.office***.*", порт: 25, безопасное соединение: ложь, требуютTLS: правда, тлс: { шифры: 'SSLv3' }, авторизация: { Пользователь: *, проходят: *** }
Я сталкиваюсь с подобной проблемой, и я решил ее прямо сейчас, вы, скорее всего, столкнулись с этой проблемой, потому что ваша электронная почта «пользователь» в опции авторизации и электронная почта «от» в опции почты отличаются
сделайте пользователя и из электронной почты одинаковыми, и это сработает для вас
const transporter = nodemailer.createTransport({
service: 'outlook',
port: 587,
auth: {
user: '[email protected]',
pass: '******'
},
tls: {
rejectUnauthorized: false
}
});
// setup email data with unicode symbols
let mailOptions = {
from: "[email protected]", // sender address
to: '[email protected]', // 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.info(info);
if (error) {
return console.info(error);
}
console.info('Message sent: %s', info.messageId);
console.info('Preview URL: %s', nodemailer.getTestMessageUrl(info));
});
Если ваша электронная почта не подтверждена, вы, вероятно, получите больше ошибок
Я использовал Hotmail, и у меня была эта проблема, но я решил ее, отредактировав MAIL_FROM_ADDRESS так, чтобы он был таким же, как MAIL_USERNAME
Ниже приведен мой файл env.
MAIL_MAILER=smtp
MAIL_HOST=smtp-mail.outlook.com
MAIL_PORT=587
[email protected] (this must be the same as MAIL_FROM_ADDRESS!)
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
[email protected] (this must be the same as MAIL_USERNAME!)
Все заработало после вышеописанного.
вы также можете использовать этот почтовый драйвер: https://github.com/motze92/office365-почта
Здесь вы можете указать любой адрес электронной почты отправителя, для которого у вашего арендатора есть разрешение. Отправленные сообщения электронной почты также попадают в папку отправленных сообщений получателей.
для этой проблемы проверьте электронную почту системного администратора jenkins, она совпадает с электронной почтой пользователя smtp.
Что работает для меня, так это установить DEFAULT_FROM_EMAIL как EMAIL_HOST_USER.
Работа с Office 365 SMTP и Django 3.0.10.
Связанное вами решение предназначено для другой ошибки «MapiExceptionNotFound», для вашей ошибки посмотрите здесь: social.technet.microsoft.com/Forums/en-US/…