alibek Posted March 3, 2018 · Report post По электронной почте 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted March 3, 2018 · Report post Гуголь как бы говорит вам, что надо в несколько транзакций отправлять, но надо смотреть какие у них ограничения на количество сессий. Но вообще на мой взгляд, проще свой почтовик поднять и с него все отправить . Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted March 3, 2018 · Report post Это резервный вариант, когда свой почтовик для скрипта недоступен. А вообще, можно ли несколько заголовков указывать? Или все получатели должны быть перечислены в одном заголовке? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted March 3, 2018 · Report post Обычно в To: указывают одного, а в cc остальных; Но это не обязательно можно по разному, зависит от того как MTA настроен. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted March 3, 2018 · Report post Вообщем скрипт более-менее довел до ума, работает хорошо. Но есть две странности. 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. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ichthyandr Posted March 4, 2018 · Report post 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 соединение Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted March 4, 2018 · Report post Точку и последующий RSET и MAIL FROM я делал, не помогало. Переподключение помогает, но я думал обойтись без него. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ichthyandr Posted March 4, 2018 · Report post 12 часов назад, alibek сказал: Точку и последующий RSET и MAIL FROM я делал, не помогало. Переподключение помогает, но я думал обойтись без него. ну вот тут пишут конкретно по smtp, здесь пример на жабе, телнетом попробовать для начала надо, может это конкретно гугл так себя ведет? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted March 5, 2018 · Report post У гугла только SMTPS, там телнетом затруднительно. Спасибо за примеры, попробую поэкспериментировать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted March 5, 2018 · Report post По поводу пункта 2 — дело то оказалось в другом. Я отправлял письма на user@prov.ru и user@mail.ru — письмо доходило только на первый адрес, и я думал, что причина именно в том, что я в одной транзакции отправляю письма на разные почтовые домены. Однако отправил на user@prov.ru и user@yandex.ru — и все прекрасно дошло за один раз. P.S. С mail.ru тоже выяснилось. У меня там был фильтр, который удалял все письма, не адресованные на user@mail.ru полем "Кому", про поле "Копия" я забыл. Вообщем все работает, скрипт доставляет все письма в одну сессию. Ошибку 451-4.3.0 я перестал получать, уж не знаю почему. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Mystray Posted March 5, 2018 · Report post 10 часов назад, alibek сказал: У гугла только SMTPS, там телнетом затруднительно. Спасибо за примеры, попробую поэкспериментировать. >openssl s_client -starttls smtp -connect gmail-smtp-in.l.google.com:smtp ... --- 250 SMTPUTF8 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted March 5, 2018 · Report post А ведь действительно. Я как-то в эту сторону подумать не сообразил. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...