Разные SMTP на одном сайте и отправка SMTP через API
Приветствую!
Последнее время начали возникать проблемы с почтой, частенько в спам или вовсе не приходят, начал разбираться и решил, что лучше всего делать через SMTP.
Предполагается, что почта на домене от майл и яндекс настроена верно и все записи(mx,dkim,spf) прописаны.
Вопрос №1. (отправка SMPT через API)
Условно мне нужно в каком то скрипте отправить письмо кому либо. Первое что появляется в голове, понятное дело, это стандартная функция mail(). Но это не наш метод, так сказать. У modx есть modPHPMailer.
Вопрос №2. (Разные SMPT на одном сайте)
Есть один сайт, т.е. с одной установкой modx. На него направленные разные домены, условно site.ru,site2.ru,site-site.ru и т.д
Когда человек заходит на сайт site.ru SMTP параметры берутся по умолчанию(что в админке прописары в разделе «Почта»)
Заходим на site2.ru, site-site.ru, если отправлять с теми же SMTP то это уже спам или вовсе не отправка.
Значит надо менять параметры:
SMTP пароль
SMTP пользователь — почтовый ящик, с которого будет происходить отправка.
Следующие параметры, нужно менять, в случае например site-site.ru SMTP от яндекса, а site2.ru использует mail.ru.
SMTP Helo сообщение
SMTP хост
Сам вопрос: На каком событии менять параметры и как, чтобы находясь например на site2.ru вся почта отправлялась например с info@site2.ru, а на site-site.ru с info@site-site.ru и все через SMTP
Последнее время начали возникать проблемы с почтой, частенько в спам или вовсе не приходят, начал разбираться и решил, что лучше всего делать через SMTP.
Предполагается, что почта на домене от майл и яндекс настроена верно и все записи(mx,dkim,spf) прописаны.
Вопрос №1. (отправка SMPT через API)
Условно мне нужно в каком то скрипте отправить письмо кому либо. Первое что появляется в голове, понятное дело, это стандартная функция mail(). Но это не наш метод, так сказать. У modx есть modPHPMailer.
$message = $modx->getChunk('myEmailTemplate');
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'me@example.org');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester');
$modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!');
$modx->mail->address('to','user@example.com');
$modx->mail->address('reply-to','me@xexample.org');
$modx->mail->setHTML(true);Как сюда передать параметры SMTP? Или же он автоматически использует SMTP который настраивается в админке?Вопрос №2. (Разные SMPT на одном сайте)
Есть один сайт, т.е. с одной установкой modx. На него направленные разные домены, условно site.ru,site2.ru,site-site.ru и т.д
Когда человек заходит на сайт site.ru SMTP параметры берутся по умолчанию(что в админке прописары в разделе «Почта»)
Заходим на site2.ru, site-site.ru, если отправлять с теми же SMTP то это уже спам или вовсе не отправка.
Значит надо менять параметры:
SMTP пароль
SMTP пользователь — почтовый ящик, с которого будет происходить отправка.
Следующие параметры, нужно менять, в случае например site-site.ru SMTP от яндекса, а site2.ru использует mail.ru.
SMTP Helo сообщение
SMTP хост
Сам вопрос: На каком событии менять параметры и как, чтобы находясь например на site2.ru вся почта отправлялась например с info@site2.ru, а на site-site.ru с info@site-site.ru и все через SMTP
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
2) системные настройки можно переназначить в настройках контекста, не использовал для smtp но по идее должно сработать
emailsender (эта важная, про неё часто забывают), mail_smtp_user, mail_smtp_pass ну и другие mail_smtp_xxx которые отличаются.
P.S. Пожалуйста, @Константин Ильин опечатку в заголовке вопроса. SMPT не тоже самое Simple Mail Transfer Protocol
Подмечу.
В комментах верно написали, что домены реализованы без контекстов, поэтому сделал по другому.
Домены прописаны у ресурсов в отдельном контексте, в доп поле скрин прикладываю.
prnt.sc/iN53u16cimo8
Получилось повесить плагин на событие OnMODXInit. Код на коленке, но думаю смысл понятен.
Попробовал отправить форму через ajaxForm все прошло ок. Грубо говоря в яндекс почте куда пришло письмо горит зеленый замочек.
А так резюмируя:
Смотрим что за домен, из условно базы(оно может быть ресурсами отдельными или в тупую массивами прописано) берем данные для сравнения и данные SMTP, и меняем в цикле данные.
www.mail-tester.com/ показывает нормально.
Готов выслушать другие решения.
А так годное получилось решение с учетом того, как реализованы домены (раз без контекстов, то тоже плагином), варианты другие в ряд ли и нужны)