![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() При отправке возникает ошибка : "Syntactically invalid EHLO argument(s)", но на windows XP все работает.
Код:
var smtp : TIdSMTP; msg : TIdMessage; begin smtp := TIdSMTP.Create(nil); smtp.AuthenticationType := atLogin; smtp.Username := 'xxx@mail.ru'; smtp.Password := 'password'; smtp.Host := 'smtp.mail.ru'; smtp.Port := 25; smtp.Connect; if smtp.Authenticate then begin msg := TIdMessage.Create(nil); msg.Subject := 'Subject'; msg.Body.Add('Mail body.'); msg.From.Text := 'xxx@mail.ru'; msg.Recipients.EMailAddresses := 'xxx@mail.ru'; smtp.Send(msg); smtp.Disconnect; msg.Free; end; smtp.Free; Отправляю так. Подскажите, как отправлять на windows 7 ? ![]() |
#2
|
|||
|
|||
![]() Win 7 x64, delphi 7, indy 10, провайдер beeline (USB модем).
Код аналогичный. Ошибка - syntactically invalid ehlo argument(s) при отправке, но соединение устанавливает по строке, для проверки, Код:
try showmessage('Подключено'); IdSMTP1.Send(IdMessage1); Примерно понятно, что не IdMessage1 не содержит каких-то параметров Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, StdCtrls; type TForm1 = class(TForm) Button1: TButton; IdMessage1: TIdMessage; IdSMTP1:TIdSMTP; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin IdSMTP1.Host:='smtp.mail.ru'; IdSMTP1.Port:=25; IdSMTP1.Username:='*****@mail.ru'; IdSMTP1.Password:='Project1'; // IdSMTP1.AuthType:=satDefault; with IdMessage1 do begin Body.Assign(Memo1.Lines); From.Text := '******@mail.ru'; Recipients.EMailAddresses := '******@mail.ru'; Subject := 'Hello'; ContentType:='text/html; charset=windows-1251'; ContentTransferEncoding:='8bit'; end; IdSMTP1.Connect; try showmessage('Ïîäêëþ÷åíî'); IdSMTP1.Send(IdMessage1); finally IdSMTP1.Disconnect; end; end; end. Код:
procedure TIdTCPConnection.RaiseExceptionForLastCmdResult; begin LastCmdResult.RaiseReplyError; end; Кому-то помогла смена имени компа на англ. буквы, но у меня изначально англ. имя компа. |
#3
|
|||
|
|||
![]() Indy вообще загадочные компоненты.
А имя того компьютера, где выскакивает ошибка, случайно не русскими буквами? |
#4
|
|||
|
|||
![]() Ебуч*й случай, оказалось, точно - полное имя компа содержит русс. буквы. Поменял и заработало.
Но более аккуратного решения так и не нашел ![]() |
#5
|
|||
|
|||
![]() Цитата:
|
#6
|
|||
|
|||
![]() LightSMTP ? ICS ? Слушал, но не пользовался - Работают?
Считал, что indy практикой устраняет ошибки и менее известные более глючные, но могу ошибаться Как и предполагалось - SmtpCli из ICS довольно непонятная штуковина справка без примеров использования, а примеры в сети не работают ... Последний раз редактировалось evgeni777, 28.07.2012 в 15:31. |
#7
|
||||
|
||||
![]() Используйте win sock и будет вам щасьте.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |