Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi html mail unter delphi mit Bitmaps versenden (https://www.delphipraxis.net/26228-html-mail-unter-delphi-mit-bitmaps-versenden.html)

freithomas 20. Jul 2004 15:55


html mail unter delphi mit Bitmaps versenden
 
hallo, wie kann ich unter delphi/indy nachrichten verschicken, die ein Bitmap enthalten und direkt beim Aufruf unter Outlook angezeigt werden?

[delphi]procedure TDataModule1.SendMail(const AFrom, ATo, ASubject, AMsg,
AServer: string);
begin
with mesgMessage do begin
Clear;
From.Text := AFrom;
Recipients.Add.Text := ATo;
Subject := ASubject;
Body.Text := AMsg;
// mesgMessage.Body.LoadFromFile('C:\Temp\lab.html');
TIdAttachment.Create(mesgMessage.MessageParts, 'C:\Temp\LAB.html');
TIdAttachment.Create(mesgMessage.MessageParts, 'C:\Temp\barcode.bmp');
end;

{ TODO : wieder unkommentieren }
with smtpSendMail do begin
Host := AServer;
AuthenticationType := atLogin;
Username := 'pc1';
Password := 'michael3';

Connect; try
Send(mesgMessage);
finally Disconnect; end;
end;
formSendMail.Completed;
end;


so sieht heute die LAB.html aus!
[html]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<TITLE> Lieferabruf </TITLE>
</HEAD>
<body text="#000000" bgcolor="#ffffff">


[img]file:///barcode.bmp[/img]



Sehr geehrte Damen und Herren,



anbei übersenden wir folgenden KANBAN Abruf:



Lieferant : KS-Lager



Artikel : 01.11.5100

Bezeichnung : VM Befestigungssatz 505

Barcode Nummer : 4019443128932

Stückzahl : 400

Ladungsträger : SK2 B1



Kunde : KS-Montage

Anlieferadresse : Regal Platten sonstiges



</BODY>
</HTML>

Ultimator 20. Jul 2004 15:57

Re: html mail unter delphi mit Bitmaps versenden
 
[Snob-Ton]Deine Delphi-Tags sind nich korrekt gesetzt[/Snob-Ton] :mrgreen:

Helld_River 21. Jul 2004 15:07

Re: html mail unter delphi mit Bitmaps versenden
 
Hi !
Hier meine Routine zum versenden von Mail direkt mit INDY:

Delphi-Quellcode:
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;
Hoffe es hilft dir weiter !!!

Gruß, Helld


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz