![]() |
Attachment an E-Mail anhängen
Hallo alle zusammen,
Wie kann ich eine E-Mail, die ich wie folgt aufrufe ein Datei anhängen? In einem Beitrag hier steht es sollte mit ...&Attachment=Pfad gehen aber ich bekomme es einfach nicht hin. Das Mail Programm öffne ich wie folgt.
Code:
shellExecute(Application.Handle, 'open', Pchar('mailto:'+Form3.DBEMail.Text+'?Subject=Betreff&BODY=text,nil,nil,sw_showNormal);
|
Re: Attachment an E-Mail anhängen
Hallo Albi,
meines Wissens nach geht das nicht mit ShellExecute, versuche mal "TJCLSimpleMail" (so heißt das glaube ich) von den Jedis. |
Re: Attachment an E-Mail anhängen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mir eine MailFrame1 gemacht:
Delphi-Quellcode:
Du brauchst halt die NMSMTP1 Komponente dazu.
unit MailUnit;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Psock, NMsmtp, StdCtrls, ExtCtrls, TS_Utils; type TMailFrame = class(TFrame) NMSMTP1: TNMSMTP; Panel1: TPanel; GroupBox1: TGroupBox; GroupBox2: TGroupBox; MailSenden: TButton; Label1: TLabel; function GetIPAddress: string; procedure FrameEnter(Sender: TObject); procedure NMSMTP1AuthenticationFailed(var Handled: Boolean); procedure NMSMTP1Failure(Sender: TObject); procedure NMSMTP1HeaderIncomplete(var handled: Boolean; hiType: Integer); procedure NMSMTP1InvalidHost(var Handled: Boolean); procedure NMSMTP1RecipientNotFound(Recipient: String); procedure NMSMTP1SendStart(Sender: TObject); procedure NMSMTP1Success(Sender: TObject); procedure MailSendenClick(Sender: TObject); procedure FrameExit(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; implementation uses mapi, winsock; {$R *.DFM} function TMailFrame.GetIPAddress: string; var phoste: PHostEnt; Buffer: array [0..100] of char; WSAData: TWSADATA; begin result:=''; if WSAStartup($0101, WSAData) <> 0 then exit; GetHostName(Buffer, SizeOf(Buffer)); phoste:=GetHostByName(buffer); if phoste = nil then result:='127.0.0.1' else result:=StrPas(inet_ntoa(PInAddr(phoste^.h_addr_list^)^)); WSACleanup end; procedure TMailFrame.FrameEnter(Sender: TObject); begin end; // MAILSSENDEN // SENDEN NCM procedure TMailFrame.MailSendenClick(Sender: TObject); begin Label1.Caption:='Verbindung zum E-Mail Server wird hergestellt...'; NMSMTP1.UserID:=Stammnummer; IF NMSMTP1.Connected=False THEN NMSMTP1.Connect; NMSMTP1.SendMail; end; procedure TMailFrame.FrameExit(Sender: TObject); begin IF NMSMTP1.Connected=True THEN NMSMTP1.Disconnect; end; // ################################################### // Meldungen !!!! // ################################# procedure TMailFrame.NMSMTP1InvalidHost(var Handled: Boolean); begin Label1.Caption:='Host ist ungültig' end; procedure TMailFrame.NMSMTP1RecipientNotFound(Recipient: String); begin Label1.Caption:='Empfänger konnte nicht aufgerufen werden' end; procedure TMailFrame.NMSMTP1SendStart(Sender: TObject); begin Label1.Caption:='Es wird versucht, die Nachricht zu versenden' end; procedure TMailFrame.NMSMTP1Success(Sender: TObject); begin Label1.Caption:='Nachricht konnte erfolgreich zugestellt werden' end; procedure TMailFrame.NMSMTP1AuthenticationFailed(var Handled: Boolean); begin Label1.Caption:='Benutzerkennung ist ungültig' end; procedure TMailFrame.NMSMTP1Failure(Sender: TObject); begin Label1.Caption:='Nachricht konnte nicht versandt werden' end; procedure TMailFrame.NMSMTP1HeaderIncomplete(var handled: Boolean; hiType: Integer); begin Label1.Caption:='Es fehlt der Absender bzw. der Empfänger' end; end. Diesen Frame fügst du dann in dein Formular ein. Und da im Quelltext :
Delphi-Quellcode:
Vielleicht hilft dir das ja :nerd:
with MailFrame1 do
with NMSMTP1 do with PostMessage do begin // EMPFÄNGER ToAddress.Clear; ToAddress.ADD('deine@mail.de'); //FromAddress ToBlindCarbonCopy.Clear; ToBlindCarbonCopy.Add('@'); // Anhang Excel- Datei Attachments.Clear; //Attachments.Add('Datei'); Subject:='Test'; end; MailFrame1.MailSendenClick(Self); |
Re: Attachment an E-Mail anhängen
Naja, das sieht ja ganz gut aus aber geht das nicht ein wenig einfacher?
ich wollte das eigentlich nicht so kompliziert haben. Ich werde es aber trotzdem gleich mal ausprobieren. |
Re: Attachment an E-Mail anhängen
Stimmt. Sieht kompliziert aus. :angle2:
Du kannst die ja das Beispiel mal runterladen. Und es dir anschauen. |
Re: Attachment an E-Mail anhängen
Hallo,
versuchs mal hiermit:
Delphi-Quellcode:
Grüsse, Daniel :hi:
ShellExecute(Handle, 'open', 'mailto:hallo@blupp.de?subject=Blupp123&Body=Töröö&Attachment="C:\pfad\zur\file.exe"', nil, nil, SW_SHOW);
|
Re: Attachment an E-Mail anhängen
Das sieht auch einfacher aus... :oops:
|
Re: Attachment an E-Mail anhängen
Da bekomme ich auch ne Feldermeldung, die Besagt: "Outlook kann nicht gestartet werden. Das Befehlszeilenargument ist ungültig . Überprüfen Sie den verwendeten Befehl."
|
Re: Attachment an E-Mail anhängen
Hi,
Du benutzt also Outlook und nicht den OE. Ich hab mein OL nicht konfiguriert, weil ich den OE benutze und dies werde ich auch nicht ändern, aber versuche mal folgendes:
Delphi-Quellcode:
Grüsse, Daniel :hi:
procedure TForm1.Button1Click(Sender: TObject);
var Outlook, MailItem: OLEVariant; begin try Outlook := GetActiveOleObject('Outlook.Application'); except Outlook := CreateOleObject('Outlook.Application'); end; MailItem := Outlook.CreateItem(0); MailItem.Recipients.Add('hallo@blupp.de'); MailItem.Subject := 'dsgfd'; MailItem.Body := 'slkdfhskdjhfkds'; MailItem.Attachments.Add('C:\meine.exe'); MailItem.Send; Outlook := Unassigned; end; |
Re: Attachment an E-Mail anhängen
Wie es aussieht liegt das an der Mapi. Wenn es immer noch nicht geht würde ich da mal nach gucken. Bei OE scheint das anders zu sein wie beim normalen Outlook.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz