function SendHTMLEMailDirect(empfaenger, betreff, HTMLText :
string): byte;
var IdMessage : TIdMessage;
IdSMTP : TIdSMTP;
i,x,y : integer;
img :
string;
ContentID : integer;
begin
result:=0;
try
IDMessage := TIdMessage.Create(Application.MainForm);
IdSMTP := TIdSMTP.Create(Application.MainForm);
// als erstes muss!!! ein einfacher Text "text/plain" kommen!
IdMessage.Body.Text := '
Diese E-Mail wurde im HTML-Format versendet';
with TIdText.Create(IdMessage.MessageParts)
do
begin
ContentType := '
text';
Body.Text := '
Diese E-Mail wurde im HTML-Format versendet';
end;
//Alle img-Tags verarbeiten
ContentID:=10001;
y:= pos('
<IMG',UpperCase(HTMLText));
while y>0
do
begin
i:= PosEx('
SRC="',UpperCase(HTMLText),y);
if i>0
then
begin
x:=PosEx('
"',HTMLText,i+6);
img:=copy(HTMLText,i+5,x-i-5);
delete(HTMLText,i+5,x-i-5);
insert('
cid:'+IntToStr(ContentID)+'
@'+ExtractFileName(img),HTMLText,i+5);
//IMG als Attachment anfügen
with TIdAttachment.Create(IdMessage.MessageParts, img)
do
begin
// hier wird diese CONTENT-ID definiert!
ExtraHeaders.Values['
Content-ID'] := IntToStr(ContentID)+'
@'+ExtractFileName(img);
end;
inc(ContentID);
end;
y:=PosEx('
<IMG',UpperCase(HTMLText),y+1);
end;
//HTML-Message erzeugen
with TIdText.Create(IdMessage.MessageParts)
do
begin
ContentType := '
text/html';
Body.Add(HTMLText);
end;
//Empfänger und Sender
IdMessage.Subject := betreff;
IdMessage.From.Address := '
absender@meinedomain.de';
IdMessage.From.
Name := '
Name des Absenders';
IdMessage.ReplyTo.EMailAddresses := '
antwort@meinedomain.de';
IdMessage.Recipients.EMailAddresses:=empfaenger;
IdSMTP.Host:='
host';
IdSMTP.Username:='
Username';
IdSmtp.Password:='
Passwort';
IdSMTP.Port:=25;
IdSMTP.AuthenticationType:=atLogin;
IdSMTP.Connect;
if IdSMTP.Authenticate
then
begin
IdSMTP.Send(IdMessage);
ShowMessage('
Mail wurde erfolgreich versendet !');
end
else
ShowMessage('
Authentication failed !');
IdSMTP.Disconnect;
finally
IDMessage.Destroy;
IdSMTP.Destroy;
end;
end;