![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 и будет вам щасьте.
|