Проблема с отправкой почты в delphi через indy
67 повідомлень
#16 років тому
Неполучается отправить почту, пишу прогу в delphi 2007 использую для отправки почты 2 компонента indy (smtp, message)Вот dfm
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 286
ClientWidth = 426
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style =
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object BitBtn1: TBitBtn
Left = 144
Top = 160
Width = 75
Height = 25
Caption = 'BitBtn1'
TabOrder = 0
OnClick = BitBtn1Click
end
object SMTP: TIdSMTP
Host = 'smtp.mail.ru'
SASLMechanisms = <>
Left = 64
Top = 40
end
object mes: TIdMessage
AttachmentEncoding = 'UUE'
BccList = <>
CCList = <>
Encoding = meDefault
FromList = <
item
end>
Recipients = <>
ReplyTo = <>
ConvertPreamble = True
Left = 232
Top = 72
end
end
А вот обработчик кнопки bitbtn
procedure TForm1.BitBtn1Click(Sender: TObject);
var
m : TIdMessage;
begin
mes.Create(Form1);
mes.Body.Text := 'Привет';
mes.From.Text := '***';
mes.Subject := 'Тема';
mes.Recipients.EMailAddresses := '***';
mes.IsEncoded := true;
smtp.Connect;
if smtp.Connected = true then showmessage ('Подключено');
smtp.Send(mes);
Помогите плиз, почему не работает данные код ? выдает непонятную ошибку появляется диалоговое окно с красным крестиком внутри и вним ничего не написано.
778 повідомлень
#16 років тому
Хотя сразу говорю, не стоит забывать о "try ... except ... end" для отлова исключений...
43 повідомлення
#16 років тому
Я надеюсь поля логин/пароль не указаны из соображений безопасности 
IdMessage1.Body.Text := 'Hello world';
IdMessage1.From.Text := секрет';
IdMessage1.Subject := 'Test hello';
IdMessage1.Recipients.EMailAddresses := '***';
IdMessage1.IsEncoded := True;
IdSMTP1.AuthenticationType := atLogin;
IdSMTP1.Host := 'mail.tut.by';
IdSMTP1.Port := 2525;
IdSMTP1.Username := секрет;
IdSMTP1.Password := секрет;
IdSMTP1.Connect;
if IdSMTP1.Authenticate then
begin
IdSMTP1.Send(IdMessage1);
ShowMessage('issended');
end
else
ShowMessage('not sended');
Компоненты не настраивал - просто кинул их на форму
Этот код только что отправил письмо.
67 повідомлень
#16 років тому
Цитата ("DimaBy"):Я надеюсь поля логин/пароль не указаны из соображений безопасности
IdMessage1.Body.Text := 'Hello world';
IdMessage1.From.Text := секрет';
IdMessage1.Subject := 'Test hello';
IdMessage1.Recipients.EMailAddresses := '***';
IdMessage1.IsEncoded := True;
IdSMTP1.AuthenticationType := atLogin;
IdSMTP1.Host := 'mail.tut.by';
IdSMTP1.Port := 2525;
IdSMTP1.Username := секрет;
IdSMTP1.Password := секрет;
IdSMTP1.Connect;
if IdSMTP1.Authenticate then
begin
IdSMTP1.Send(IdMessage1);
ShowMessage('issended');
end
else
ShowMessage('not sended');
Компоненты не настраивал - просто кинул их на форму
Этот код только что отправил письмо.
в delphi 2007 нет у idSMTP1 свойства "IdSMTP1.AuthenticationType := atLogin;" есть только idSMTP1.AuthType с 3 параметрами 1-atDefault, 2-atNone, 3-atSASL
ну я поменял строчку "IdSMTP1.AuthenticationType := atLogin;" на "idSMTP1.AuthType := atDefault" внес свое имя пользователя и пароль от почты с gmail.com и выдает ошибку типа я ввел неправельно име пользователя или пароль хотя ввожу 100% правильно, например если почта *** (с паролем 321) то свойство IdSMTP1.Username := '123'; и IdSMTP1.Password := '321';


43 повідомлення
#16 років тому
А ты вообще уверен, что твой ящик на gmail предоставляет доступ по smtp?Насколько я помню, он там отдельно включается.
GMail вообще, насколько я понимаю не особо "любит" пользователей, которые работают с ним через POP/IMAP,SMTP а не через веб-интерфейс. Сужу я об этом уже хотя бы потому, что настроить The bat на GMail - вополнимая, но достаточно геморойная процедура, по сравнению с теми же майл.ру или тут.бай. Вполне возможно что у тбя просто не выставлен доступ по smtp в GMail. Попробуй для начала на мэйл.ру. Влюбом случае - если с твоим сервером не заработал The Bat, не заработает и IdSmtp.
67 повідомлень
#16 років тому
Цитата ("DimaBy"):А ты вообще уверен, что твой ящик на gmail предоставляет доступ по smtp?
Насколько я помню, он там отдельно включается.
GMail вообще, насколько я понимаю не особо "любит" пользователей, которые работают с ним через POP/IMAP,SMTP а не через веб-интерфейс. Сужу я об этом уже хотя бы потому, что настроить The bat на GMail - вополнимая, но достаточно геморойная процедура, по сравнению с теми же майл.ру или тут.бай. Вполне возможно что у тбя просто не выставлен доступ по smtp в GMail. Попробуй для начала на мэйл.ру. Влюбом случае - если с твоим сервером не заработал The Bat, не заработает и IdSmtp.
Через mail.ru тоже не получается пишу host - smtp.mail.ru port - 25 ставлю имя пользователя и пароль и всеравно неотправляется .
А на gmail.com я нашел только протоколы imap и pop а smtp я там не нашел и не знаю как включить.
Если несложно покажите рабочий пример через mail.ru например. плиз..