unit SSLMail2Unit;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls, IdIOHandler,
IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdComponent,
IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
IdSMTPBase, IdSMTP, IdBaseComponent, IdMessage, IDAttachment, IdAttachmentFile, IDGlobal;
type
TForm1 =
class(TForm)
Button1: TButton;
IdMessage1: TIdMessage;
IdSMTP1: TIdSMTP;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure MailConnect;
begin
Form1.IdSMTP1.AuthType := satDefault;
// simpler Login ohne Authentifizierung
Form1.IdSMTP1.Host := '
smtp.strato.de';
Form1.IdSMTP1.Port := 465;
Form1.IdSMTP1.UseTLS := utUseRequireTLS;
// mit SSL -> Port dann in aller Regel 587
Form1.IdSMTP1.Username := '
h.bothur@xxx.xx';
// Benutzername
Form1.IdSMTP1.Password := '
Passwort';
// Passwort
// Verbinden mit Server
Form1.Memo1.Lines.Add('
Beginn Connect');
try
Form1.IdSMTP1.Connect;
except
on E:
Exception do
begin
Form1.Memo1.Lines.Add('
>> Fehler Connect: ');
Form1.Memo1.Lines.Add('
>> ' +e.
message +'
: ');
Application.MessageBox (PChar(E.
Message),'
Verbindungsfehler Connect!',MB_OK);
Form1.IdSMTP1.Disconnect;
exit;
end;
end;
Form1.Memo1.Lines.Add('
Connected');
Form1.Memo1.Lines.Add('
');
end;
procedure MailVersenden(Runde: integer);
var
iAttachment : TIdAttachment;
begin
Form1.Memo1.Lines.Add('
Beginn Mailerstellung: ' +FloatToStr(Runde));
Form1.IdMessage1.Body.Assign(Form1.Memo1.Lines);
// der eigentliche eMail -Text aus einem TMemo
Form1.IdMessage1.Priority := TIdMessagePriority(2);
// Priorität
Form1.IdMessage1.Recipients.EMailAddresses := '
hans.hgbothur.de';
// Empfängeradresse
Form1.IdMessage1.ReplyTo.EMailAddresses := '
h.bothur@hermann-juergensen.de';
// Anwortadresse
Form1.IdMessage1.From.Text := '
h.bothur@hermann-juergensen.de';
// Absenderadresse
Form1.IdMessage1.ContentType := '
multipart/*';
// mit Anhang!
Form1.IdMessage1.Subject := '
Testmail: ' +FloatToStr(Runde);
iAttachment := TIdAttachmentFile.Create(Form1.IdMessage1.MessageParts, '
i:\h.bothur\entw\rtn\mailtest\test1.pdf') ;
iAttachment := TIdAttachmentFile.Create(Form1.IdMessage1.MessageParts, '
i:\h.bothur\entw\rtn\mailtest\test2.pdf') ;
iAttachment := TIdAttachmentFile.Create(Form1.IdMessage1.MessageParts, '
i:\h.bothur\entw\rtn\mailtest\test3.pdf') ;
iAttachment := TIdAttachmentFile.Create(Form1.IdMessage1.MessageParts, '
i:\h.bothur\entw\rtn\mailtest\test4.pdf') ;
Form1.Memo1.Lines.Add('
Beginn Senden: ' +FloatToStr(Runde));
try
if Form1.IdSMTP1.Connected
then Form1.IdSMTP1.Send(Form1.IdMessage1);
except
on E:
Exception do
begin
Application.MessageBox (PChar(E.
Message),'
Verbindungsfehler Versand !',MB_OK);
Form1.IdSMTP1.Disconnect;
exit;
end;
end;
iAttachment.Free;
Form1.Memo1.Lines.Add('
Ende Senden: ' +FloatToStr(Runde));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
MailConnect;
for i := 1
to 4
do
begin
MailVersenden(i);
Memo1.Lines.Add('
');
end;
IdSMTP1.Disconnect;
end;
end.