Sending email using gmail smtp server
проблема в том, что если после того, как посылаю "DATA" и получаю 354 Go ahead... сразу посылаю CRLF.CRLF, то сообщение уходит и я получаю 250 2.0.0 OK... уходит пустым, естественно.
если хочу хотя бы "Subject: blablabla \r\n" отправить, после отправления CRLF.CRLF сервер молчит. соединение рвет не сразу, но ждет чего-то. в чем может быть причина?
в чем может быть причина?
-----
Заголовок сообщения отделяется от тела сообщения одной пустой строкой. ну или заголовок отделяется CRLFCRLF
(без точки)
CRLF.CRLF - это уже после тела сообщения.
зачем вы выдумываете? читаем https://tools.ietf.org/html/rfc821, нет там ничего об отделении чего-то одной пустой строкой.
вот вам примеры из документа:
S: DATA
R: 354 Start mail input; end with .
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Date: 2 Nov 81 22:33:44
S: From: John Q. Public <JQP@MIT-AI.ARPA>
S: Subject: The Next Meeting of the Board
S: To: Jones@BBN-Vax.ARPA
S:
S: Bill:
S: The next meeting of the board of directors will be
S: on Tuesday.
S: John.
S: .
R: 250 OK
S: QUIT
R: 221 USC-ISIE.ARPA Service closing transmission channel
если сервер замечает какую-то каку, он отвечает соотв. сообщением. а если он молчит, значит, он ожидает посылки "конца данных".
нет там ничего об отделении чего-то одной пустой строкой.
S: DATA
R: 354 Start mail input; end with .
S: Date: 2 Nov 81 22:33:44
S: From: John Q. Public
S: Subject: The Next Meeting of the Board
S: To: Jones@BBN-Vax.ARPA
S: <------------------------------------------------------------------------------- А это что?
S: Bill:
S: The next meeting of the board of directors will be
S: on Tuesday.
S: John.
S: .
R: 250 OK
S: QUIT
R: 221 USC-ISIE.ARPA Service closing transmission channel
Ох, Мышонок...
Ты спросил - Почему? - и Я тебе объяснил именно ЭТО...
Чтобы понять - читай RFC 2822, RFC 5322 & etc...
вот вам примеры из документа:
...
S: To: Jones@BBN-Vax.ARPA
[red]S: [/red]
S: Bill:
...
------
???
а если он молчит, значит, он ожидает посылки "конца данных".
-----
Ну и чего же он у тебя ожидает после документированного CRLF.CRLF?
мы не об заголовках говорим, это просто животному сказать было нечего, он и сказал, что он, ему кажется, откуда-то знает (манера у него такая).
если у вас есть доступ к какому-нибудь смтп серверу, понимающему открытый текст, зайдите туда на порт 25 и "поговрите", отправив имэйл вообще без заголовка, только блаблабла какое-нибудь, затем завершите данные \r\n.\r\n, как положено, и имэйл спокойно уйдет. в нем не будет ни сабжа, ни когда создан, ни прочего, но сервер его отправит. по крайней мере он поймает конец данных, заголовки и прочее - это не относится к smtp протоколу непосредственно. если серверу что-то не понравится, он ответит каким-нибудь кодом, но раз он молчит, он не понимает, что данные закончились.
все, нашел! точнее, добрые люди помогли. не здесь, на этот раз в другом месте : )
Предположу, что проблема была в том, что осталось за кадром, когда ТС описывал ситуацию.
Там нет ничего за кадром.
Есть
- заголовки
- пустая строка
- тело
если заголовки не используются - пустая строка не нужна.
тело сообщения может быть пустым, но после заголовка должна быть пустая строка.
По крайней мере так в SMTP на GMail.
Аутентификация юзера там более замученная, но не формат сообщений...
букварь нужно читать внимательнее : )
но мне простительно, я только несколько дней в луа теме...
а то, что говорил и продолжает нести говняный кот - полная чушь (как всегда, впрочим...)