Андрей Зайцев
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 років тому
А как на счёт поиска???
Посмотри здесь:
Ярослав С.
778 повідомлень
#16 років тому
Хотя сразу говорю, не стоит забывать о "try ... except ... end" для отлова исключений...
 Dima
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';
 Dima
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 например. плиз..
 Dima
43 повідомлення
#16 років тому
Нет, сейчас времени нет - я скоро в отпуск уезжаю. Так что пока - отлаживай на тут.бай - там регистрация бесплатная.