Как программно отправить письмо.

Вот пример кода:

procedure SendEmail;
var
  SMTP: TIdSMTP;
  IdMessage: TIdMessage;
  Attach: TIdAttachment;
  tmpFile: string;
  ssl : string;
begin
  SMTP := TIdSMTP.Create;
  try
    // Настраиваем соединение
    SMTP.Host := 'smtp.mail.ru'; // адрес сервера
    SMTP.Port := 25; // порт
    SMTP.Username := 'login';
    SMTP.Password := 'password';
  
    // Пытаемся подключиться к серверу. 
    try
      SMTP.Connect;
    except
      on e: Exception do
        WriteError(Format('Не удалось подключиться к почтовому серверу. Причина: %s',
          [e.Message]));
    end;

    if SMTP.Connected then
    begin
      // Создаём письмо
      IdMessage := TIdMessage.Create;
      Try
        with IdMessage do
        begin
          CharSet := 'windows-1251';
          From.Address := 'Адрес отправителя';
          From.Name := 'Имя отправителя';
          Recipients.EMailAddresses := 'Адреса получателей через ;'
          Subject := 'Тема письма';
          Body.Text := 'Тело письма';
        end;
 
        // Добавляем аттач
        Attach := TIdAttachmentFile.Create(IdMessage.MessageParts, 'Имя файла для аттача');
        try
          // Отправляем письмо
          SMTP.Send(IdMessage);
        finally
          Attach.Free;
        end;
      finally
        IdMessage.Free;
      end;
      SMTP.Disconnect;
    end;
  finally
    SMTP.Free;
  end;
end;

Большинство почтовых серверов позволяют оправлять через себя почту только своим почтовым ящикам, т.е. адрес отправителя должен соответствовать учётной записи, которая использовалась для авторизации.

 

Метки: