Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi E-Mail verschicken (https://www.delphipraxis.net/107237-e-mail-verschicken.html)

bonsaikatze 24. Jan 2008 16:16


E-Mail verschicken
 
Wie verschicke ich eine E-Mail über Delphi?

Die Muhkuh 24. Jan 2008 16:16

Re: E-Mail verschicken
 
In dem man in der Delphi-PRAXiS danach sucht ;)

snow 24. Jan 2008 16:20

Re: E-Mail verschicken
 
Ich schließe Mich meinem Vorredner an, und detailisiere:

via Indy-SMTP-komponente und nem E-Mail-Konto.


Oder du lässt das Standart-Email-Programm starten.

Das geht mit ShellExecute+Emailadresse+empfänger.

gruß snow

Die Muhkuh 24. Jan 2008 16:21

Re: E-Mail verschicken
 
Alternativ gibt es von den Jedis noch was? TJvMail oder sowas

grenzgaenger 24. Jan 2008 21:37

Re: E-Mail verschicken
 
man kann sie die smtp schnittstelle aber auch selber schreiben.

RavenIV 25. Jan 2008 08:11

Re: E-Mail verschicken
 
Kannst auch diesen Code nehmen und leicht anpassen:

Delphi-Quellcode:

uses
  ..., Mapi, ... ;


// email senden
procedure TMyForm.SendEmail();
var
  MapiMessage: TMapiMessage;
  MapiRecipDesc: TMapiRecipDesc;
  MError: Cardinal;
  EmailAdresse: string;
  targetWnd: HWND;
begin
  EmailAdresse := EdEmpfaenger.Text;

  // Empfänger setzen
  FillChar(MapiRecipDesc, SizeOf(TMapiRecipDesc), 0);
  with MapiRecipDesc do
  begin
    ulReserved := 0;
    ulRecipClass := MAPI_TO;
    lpszName := PAnsiChar(EmailAdresse);
    lpszAddress := nil;
    ulEIDSize := 0;
    lpEntryID := nil;
  end;

  // Nachricht setzen
  FillChar(MapiMessage, SizeOf(TMapiMessage), 0);
  with MapiMessage do
  begin
    ulReserved := 0;
    lpszSubject := nil; // kein Subject
    lpszNoteText := nil; // kein Mailtext
    lpszMessageType := nil;
    lpszDateReceived := nil;
    lpszConversationID := nil;
    flFlags := 0;
    lpOriginator := nil;
    nRecipCount := 1; // nRecipCount muß auf Anzahl der MapiRecipDesc gesetzt werden;
    lpRecips := @MapiRecipDesc; // lpRecips muß auf die Adresse MapiRecipDesc gesetzt werden;
    nFileCount := 0; // kein Attachement
    lpFiles := nil;
  end;

  // Nachricht senden
  MError := MapiSendMail(0, Application.Handle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
  if MError <> 0 then
  begin
    FoLog.log ('Email konnte nicht gesendet werden');
  end;

  // "<ALT> + R" ans Email-Fenster senden (Fokus auf "Betreff" setzen)
  targetWnd := FindWindow(nil, 'Verfassen: (kein Betreff)'); // Email-Fenster finden
  if targetwnd <> 0 then
  begin
    SetForegroundWindow(targetwnd); // Email-Fenster in den Vordergrund holen
    sleep(50); // damit das Fenster Zeit hat, in den Vordergrund zu kommen
    keybd_event(VK_MENU, 0, 0, 0); // <ALT> drücken
    keybd_event(Ord('R'), 0, 0, 0); // "R" drücken
    keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0); // <ALT> loslassen
    keybd_event(Ord('R'), 0, KEYEVENTF_KEYUP, 0); // "R" loslassen
  end;
end;

renekr 14. Mär 2008 05:36

Re: E-Mail verschicken
 
Hi Raven,

ich habe so eine Ähnliche Routine aber ich bekomme als Result oft die 11.
Kansnt du mir sagen wo ich sehen kann was die 11 als Error Code bedeutet?

danke

RavenIV 14. Mär 2008 07:53

Re: E-Mail verschicken
 
Zitat:

Zitat von renekr
Hi Raven,

ich habe so eine Ähnliche Routine aber ich bekomme als Result oft die 11.
Kansnt du mir sagen wo ich sehen kann was die 11 als Error Code bedeutet?

Ein kurzer Blick in die Mapi.pas zeigt dies:
MAPI_E_ATTACHMENT_NOT_FOUND = 11;
Dort sind auch alle anderen Fehler beschrieben.

renekr 14. Mär 2008 08:14

Re: E-Mail verschicken
 
Hi,
Vielen dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 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