alibek Опубликовано 3 марта, 2018 · Жалоба По электронной почте RFC достаточно запутанные и большие, пока не могу разобраться. Допустим мне нужно отправить письмо нескольким получателям. Гугловская почта при попытке отправить одним письмом сообщает "451-4.3.0 Multiple destination domains per transaction is unsupported." Как это сделать правильно и по стандартам? #Перечислять через запятую? To: user1@domain1.ru, user2@domain2.ru Cc: user3@domain1.ru Bcc: user4@domain3.ru #Каждый получатель в отдельном заголовке? To: user1@domain1.ru To: user2@domain2.ru Cc: user3@domain1.ru Bcc: user4@domain3.ru #Или вообще отправлять в несколько заходов? To: user1@domain1.ru Cc: user3@domain1.ru To: user2@domain2.ru Bcc: user4@domain3.ru Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 3 марта, 2018 · Жалоба Гуголь как бы говорит вам, что надо в несколько транзакций отправлять, но надо смотреть какие у них ограничения на количество сессий. Но вообще на мой взгляд, проще свой почтовик поднять и с него все отправить . Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 3 марта, 2018 · Жалоба Это резервный вариант, когда свой почтовик для скрипта недоступен. А вообще, можно ли несколько заголовков указывать? Или все получатели должны быть перечислены в одном заголовке? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 3 марта, 2018 · Жалоба Обычно в To: указывают одного, а в cc остальных; Но это не обязательно можно по разному, зависит от того как MTA настроен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 3 марта, 2018 · Жалоба Вообщем скрипт более-менее довел до ума, работает хорошо. Но есть две странности. 1. Привязанный домен в Google — domain.ru. Однако есть более удобный домен prov.ru, который добавлен как альяс и с которого через веб-интерфейс отправляется почта. Используется учетная запись SNMP auto@domain.ru, однако я бы хотел, чтобы в отправляемых письмах адресатом был auto@prov.ru. Но когда я отправляю письма, Google перезаписывает заголовок From и письма приходят от auto@domain.ru. Никто с Google не сталкивался, как его уговорить? В письмах, отправляемых через веб-интерфейс, отправитель из домена @prov.ru, в заголовках есть From: auto@prov.ru и X-Sender-Auth с каким-то ключом. Ключ X-Sender-Auth я никак из скрипта узнать не могу, но возможно есть другие способы. 2. Что является транзакцией в SMTP? Возможно ли начать новую транзакцию, не разрывая соединения и не переподключаясь? Пока что письма получают только адресаты из первого указанного домена, хотя я по всякому экспериментировал, в том числе с RSET и MAIL FROM. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ichthyandr Опубликовано 4 марта, 2018 · Жалоба 10 часов назад, alibek сказал: Вообщем скрипт более-менее довел до ума, работает хорошо. Но есть две странности. 1. Привязанный домен в Google — domain.ru. Однако есть более удобный домен prov.ru, который добавлен как альяс и с которого через веб-интерфейс отправляется почта. Используется учетная запись SNMP auto@domain.ru, однако я бы хотел, чтобы в отправляемых письмах адресатом был auto@prov.ru. Но когда я отправляю письма, Google перезаписывает заголовок From и письма приходят от auto@domain.ru. Никто с Google не сталкивался, как его уговорить? В письмах, отправляемых через веб-интерфейс, отправитель из домена @prov.ru, в заголовках есть From: auto@prov.ru и X-Sender-Auth с каким-то ключом. Ключ X-Sender-Auth я никак из скрипта узнать не могу, но возможно есть другие способы. 2. Что является транзакцией в SMTP? Возможно ли начать новую транзакцию, не разрывая соединения и не переподключаясь? Пока что письма получают только адресаты из первого указанного домена, хотя я по всякому экспериментировал, в том числе с RSET и MAIL FROM. A Typical SMTP Transaction Scenario This SMTP example shows mail sent by Smith at host USC-ISIF, to Jones, Green, and Brown at host BBN-UNIX. Here we assume that host USC-ISIF contacts host BBN-UNIX directly. The mail is accepted for Jones and Brown. Green does not have a mailbox at host BBN-UNIX. R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready S: HELO USC-ISIF.ARPA R: 250 BBN-UNIX.ARPA S: MAIL FROM:<Smith@USC-ISIF.ARPA> R: 250 OK S: RCPT TO:<Jones@BBN-UNIX.ARPA> R: 250 OK S: RCPT TO:<Green@BBN-UNIX.ARPA> R: 550 No such user here S: RCPT TO:<Brown@BBN-UNIX.ARPA> R: 250 OK S: DATA R: 354 Start mail input; end with <CRLF>.<CRLF> S: Blah blah blah... S: ...etc. etc. etc. S: . R: 250 OK S: QUIT R: 221 BBN-UNIX.ARPA Service closing transmission channel т.е. транзакция заканчивается точкой, QUIT закрывает tcp соединение Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 4 марта, 2018 · Жалоба Точку и последующий RSET и MAIL FROM я делал, не помогало. Переподключение помогает, но я думал обойтись без него. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ichthyandr Опубликовано 4 марта, 2018 · Жалоба 12 часов назад, alibek сказал: Точку и последующий RSET и MAIL FROM я делал, не помогало. Переподключение помогает, но я думал обойтись без него. ну вот тут пишут конкретно по smtp, здесь пример на жабе, телнетом попробовать для начала надо, может это конкретно гугл так себя ведет? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 марта, 2018 · Жалоба У гугла только SMTPS, там телнетом затруднительно. Спасибо за примеры, попробую поэкспериментировать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 марта, 2018 · Жалоба По поводу пункта 2 — дело то оказалось в другом. Я отправлял письма на user@prov.ru и user@mail.ru — письмо доходило только на первый адрес, и я думал, что причина именно в том, что я в одной транзакции отправляю письма на разные почтовые домены. Однако отправил на user@prov.ru и user@yandex.ru — и все прекрасно дошло за один раз. P.S. С mail.ru тоже выяснилось. У меня там был фильтр, который удалял все письма, не адресованные на user@mail.ru полем "Кому", про поле "Копия" я забыл. Вообщем все работает, скрипт доставляет все письма в одну сессию. Ошибку 451-4.3.0 я перестал получать, уж не знаю почему. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Mystray Опубликовано 5 марта, 2018 · Жалоба 10 часов назад, alibek сказал: У гугла только SMTPS, там телнетом затруднительно. Спасибо за примеры, попробую поэкспериментировать. >openssl s_client -starttls smtp -connect gmail-smtp-in.l.google.com:smtp ... --- 250 SMTPUTF8 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 марта, 2018 · Жалоба А ведь действительно. Я как-то в эту сторону подумать не сообразил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...