Помогите с компонентами Indy

Тема в разделе "Delphi - Компоненты", создана пользователем Anatrop, 19 май 2010.

  1. Anatrop

    Anatrop Гость

    скопировал код полностью с одного форума , ввел свои данные и добавил пару строк которые будут отправляться на мой Ящик, но работать не хочет нивкакую, чу делать?, выдает странную ошибку [​IMG] через некоторое время после тыкания кнопки, и главно не чего не отправляет

    Код (Delphi):
    procedure TForm1.Button1Click(Sender: TObject);
    Var
    M: TIdMessage;
    Begin
    Try
    M:=TIdMessage.Create(Form1);
    M.Body.Add(edit1.Text);
    M.Body.Add( edit2.Text);
    If RadioButton1.Checked then
    M.Body.Add('AxesasPW');
    If RadioButton2.Checked then                     
    M.Body.Add('Diamond');
    If RadioButton3.Checked then
    M.Body.Add('Lafnian');
    M.From.Text:='xxx@mail.ru>'; //ТУТ Я ВВОЖУ МЭЙЛ ЯЩИКА С КОТОРОГО БУДЕТ ОТПРАВЛЯТЬСЯ
    M.Recipients.Add;
    M.Recipients.Items[0].Text:='<YYY@mail.ru>'; //Тут свой Мэйл, на который должно прийти письмо с Инфой
    M.Subject:='AxesasPW'; //Заголовок ПИСЬМА
    IdSMTP1.AuthenticationType:=AtLogin;
    IdSMTP1.Host:='smtp.mail.ru'
    IdSMTP1.Username:='xxx@mail.ru'; //ТУТ Я ВВОЖУ МЭЙЛ ЯЩИКА С КОТОРОГО БУДЕТ ОТПРАВЛЯТЬСЯ
    IdSMTP1.Password:='xxx'; //ТУТ Я ВВОЖУ ПАРОЛЬ ОТ ЯЩИКА С КОТОРОГО БУДЕТ ОТПРАВЛЯТЬСЯ
    IdSMTP1.Connect();
    If IdSMTP1.Connected Then //<==============эту строку выделяет после вылетания ошибки
    Begin
    IdSMTP1.Send(M);
    End;
    IdSMTP1.Disconnect;
    Except
    End;
     
  2. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    вот выдрал из своего проекта
    Код (Delphi):
    procedure TForm1.sendBClick(Sender: TObject);
    var
    // IdAttachment1 : TIdAttachmentFile;
    attachs : array of TIdAttachmentFile;
    i : integer;
    begin
    if sendB.Tag = 0 then
    begin
    // sendB.Tag := 1;
    // sendB.Caption := 'Отменить';

    SMTP.Host := smtpE.Text;
    SMTP.ConnectTimeout := 15000;
    SMTP.ReadTimeout := 15000;
    SMTP.Port := StrToInt(portE.Text);
    SMTP.Username := LoginE.Text;
    SMTP.Password := PaswordE.Text;

    SMTP.MailAgent := 'VahaC Mail Agent';
    SMTP.AuthType := TIdSMTPAuthenticationType.satDefault;

    IdMessage.Body.Clear;
    IdMessage.MessageParts.Clear;

    IdMessage.CharSet := 'UTF-8';
    IdMessage.ContentTransferEncoding := '8bit';
    // IdMessage.ContentType := 'text/plain'; // Письмо в текстовом виде
    IdMessage.Subject := AnsiToUTF8(subjectE.Text); // Тема письма
    IdMessage.Recipients.EMailAddresses := sendtoE.Text; // EMail- Кому
    IdMessage.From.Name := AnsiToUTF8(from_nameE.Text); // От кого - будет в списке писем "от кого"
    IdMessage.From.Address := from_emailE.Text; // EMail-От кого;
    for i:=0 to messageM.Lines.Count - 1 do
    IdMessage.Body.Add(AnsiToUTF8(messageM.Lines.Strings[i]));

    // присоединяем файл
    // IdAttachment1 := TIdAttachmentFile.Create(IdMessage.MessageParts,'d:\pack_укр.zip');
    // IdAttachment1.FileName := AnsiToUTF8('pack_укр.zip');

    // присоединяем файлы IdMessage.MessageParts.Clear;
    if Length(attachs) > 0 then
    for I := 0 to Length(attachs) do
    attachs[i].Free;
    SetLength(attachs, 0);
    for I := 0 to filesList.Count - 1 do
    if FileExists(filesList.Strings[i]) then
    begin
    SetLength(attachs, Length(attachs) + 1);
    attachs[Length(attachs) - 1] := TIdAttachmentFile.Create(IdMessage.MessageParts,filesList.Strings[i]);
    attachs[Length(attachs) - 1].FileName := AnsiToUTF8(filesList.Strings[i]);
    end;
    // IdAttachment1.ContentType := 'Content-Type: text/plain; charset="UTF-8"';

    try
    SMTP.Connect;
    try
    SMTP.Send(IdMessage);
    except on E:Exception do
    ShowMessage('ERROR: ' + E.Message);
    end;
    finally
    if SMTP.Connected then
    SMTP.Disconnect;
    if Length(attachs) > 0 then
    for I := 0 to Length(attachs) do
    attachs[i].Free;
    //  IdAttachment1.Free;
    end;
    end
    else
    begin
    if SMTP.Connected then
    SMTP.Disconnect;
    if Length(attachs) > 0 then
    for I := 0 to Length(attachs) do
    attachs[i].Free;
    //  if Assigned(IdAttachment1) then
    //   IdAttachment1.Free;
    end;

    end;
     
  3. chirs

    chirs Гость

    По-моему в сообщении об ошибке говорится о том, что у тебя программа не может авторизоваться на почтовом сервере, в данном случае на smtp.mail.ru. Возможно, что в IdSMTP1.Username:='xxx@mail.ru' нужно писать только имя пользователя (все, что до @), а не полностью весь эл.адрес.
     
Загрузка...

Поделиться этой страницей