|
#1
|
|||
|
|||
Отправка по SMTP
Я уже запарился от тупости. Пытаюсь отправить сообщение так.
Код:
msg := TIdMessage.Create; client := TIdSMTP.Create; // att := TIdAttachmentFile.Create(Msg.MessageParts, fName); with client do begin Port := 25; Host := SMTP_SERVER; AuthType := satDefault; Username := USER_NAME; Password := USER_PASSWORD; Connect; end; if client.Connected = false then goto final_; with msg do begin Subject := 'Tracking the person ' + Service.GetUserName + '.'; Recipients.EMailAddresses := USER_ADDRESS; From.Address := FROM_ADDRESS; Body.Text := 'asdfdsh'; Date := SysUtils.Date; end; try client.Send(Msg); good := true; except On E: Exception Do begin ShowMessage(E.Message); good := false; end; end Но всегда выплывает "Error: Message content rejected". |
#2
|
|||
|
|||
проверь telnet'ом. Похоже что серверу просто не нравится твое письмо.
|
#3
|
|||
|
|||
Всем серверам не нравится моё письмо.
Прим.: а как проверить telnet'ом? |
#4
|
|||
|
|||
Пользуюсь Delphi XE, версия Indy - новейшая.
Привожу полный код модуля с вырезанными "лишними" строчками (со специально созданной почтой на рамблере, можете проверить ) Код:
unit Sending; interface procedure SendScreens; implementation uses IdSMTP, IdMessage, SysUtils, Windows, Dialogs, Forms; const SMTP_SERVER = 'smtp.rambler.ru'; USER_LOGIN = 'iqdddd17'; USER_PASSWORD = 'Sidorovich'; TO_ADDRESS = 'iqdddd@gmail.com'; FROM_ADDRESS = 'iqdddd17@rambler.ru'; USER_NAME = 'Иванов Иван Иванович'; procedure SendScreens; label final_; var client: TIdSMTP; msg: TIdMessage; begin msg := TIdMessage.Create; client := TIdSMTP.Create; with client do begin Port := 25; Host := SMTP_SERVER; AuthType := satDefault; Username := USER_LOGIN; Password := USER_PASSWORD; PipeLine := true; Connect; if not Connected then goto final_; end; with msg do begin Body.Text := 'about'; Subject := 'Tracking the person.'; Recipients.EMailAddresses := TO_ADDRESS; From.Address := FROM_ADDRESS; From.Name := USER_NAME; Date := SysUtils.Date; end; try client.Send(Msg); except On E: Exception Do begin ShowMessage(E.Message); end; end; final_: msg.Free; Client.Free; end; end. Кому не сложно, подключите и проверьте. |
#5
|
|||
|
|||
возможно, USER_LOGIN должен также содержать имя домена.
|
#6
|
|||
|
|||
Пробовал уже всё, что можно. Не работает.
|
#7
|
|||
|
|||
А вот лог общение сервера и клиента:
Цитата:
|
#8
|
|||
|
|||
Тщетно весь вечер пытался найти ошибку в Indy. Сервер тупо не хочет принимать сообщение. Кто-нибудь, подкиньте рабочий исходник. %-)
|