AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mailto mit Anhang senden

Ein Thema von uhaetten · begonnen am 4. Feb 2008 · letzter Beitrag vom 4. Feb 2008
Antwort Antwort
uhaetten

Registriert seit: 29. Jan 2008
Ort: St Gallen
7 Beiträge
 
#1

Mailto mit Anhang senden

  Alt 4. Feb 2008, 15:17
Hallo zusammen

Ich möchte, dass mein Programm auf Knopfdruck das Standard-E-Mail-Programm des Users öffnet und da eine neue E-Mail erstellt. Diese soll jedoch noch nicht versendet werden, sondern erst geöffnet werden, damit der User noch die Chance hat den Text anzupassen.

Dies erreiche ich auch wunderbar mit folgendem Code

ShellExecute(Application.Handle, 'open', PChar('mailto:' + edbEmail.Text), nil, nil, SW_SHOW); Allerdings möchte ich nun noch eine Datei anhängen. Im Stil von "Rechtsklick auf eine Datei -> Datei senden an -> Emailempfänger" in Windows.

Könnt ihr mir da weiterhelfen?

Vielen Dank
Urs
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Mailto mit Anhang senden

  Alt 4. Feb 2008, 15:25
Stichwort (Simple)Mapi (z.b. mit Units aus der Jedi).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
uhaetten

Registriert seit: 29. Jan 2008
Ort: St Gallen
7 Beiträge
 
#3

Re: Mailto mit Anhang senden

  Alt 4. Feb 2008, 15:29
mit MAPI hab ich schon was gefunden hier auf DP: datei per email versenden

nur ist hier das Problem, dass dann Outlook (oder welches Programm auch immer) versucht das Mail im Hintergrund zu versenden und man kann den Text nicht verändern.

Oder meinst du was anderes mit MAPI?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Mailto mit Anhang senden

  Alt 4. Feb 2008, 15:33
Zitat von uhaetten:
nur ist hier das Problem, dass dann Outlook (oder welches Programm auch immer) versucht das Mail im Hintergrund zu versenden und man kann den Text nicht verändern.
In MAPI kann man angeben ob versucht werden soll gleich zu senden oder per Vorschau im email-Client angezeigt werden soll.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
 
Delphi 12 Athens
 
#5

Re: Mailto mit Anhang senden

  Alt 4. Feb 2008, 15:37
Also sobald ein Anhang mitgeschickt werden soll, musst Du auf MAPI ausweichen, ansonsten reicht auch ShellExecute.

Sobald Du MAPI verwendest, erstellt bspw. eine bestimmte Funktion eine neue EMail mit den Daten, die Du im Programm eingetragen hast. Versendet wird diese allerdings noch nicht, da der Anwender erst im EMail-Programm auf den Senden-Schalter drücken muss.

Schau Dir am besten die JEDI VCL-Beispiele dazu an, dann wird alles etwas klarer (hier).
Devid
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Mailto mit Anhang senden

  Alt 4. Feb 2008, 15:58
oder Du nimmst folgende Unit:
Delphi-Quellcode:
unit tdEmail;

interface

uses
  Classes, SysUtils;

function SendEMail(const AHost,AUser,APass, AToAdress,ASubject: String;
                   const ABody,AAttachment: TStrings): Integer;

implementation

uses
  IdMessage, IdSMTP, idAttachmentFile;

function SendEMail(const AHost,AUser,APass, AToAdress,ASubject: String;
                   const ABody,AAttachment: TStrings): Integer;
var
  HMsg: TIdMessage;
  HSMTP: TIdSMTP;
  I: Integer;
begin
  Result := 0; { Ok }
  HSMTP := TIdSMTP.Create(nil);
  HSMTP.Host := AHost;
  HSMTP.Username := AUser;
  HSMTP.Password := APass;
  HSMTP.Port := 25;
  HSMTP.AuthType := atDefault;
  HSMTP.Connect;
  { Message füllen }
  HMsg := TIdMessage.Create(nil);

  HMsg.From.Address := AUser;

  HMsg.Recipients.EMailAddresses := AToAdress;

  HMsg.Subject := ASubject;
  HMsg.Body.Clear;
  HMsg.Body.Assign(ABody);
  HMsg.Date := Now;
  { Anhang }
  if Assigned(AAttachment) then
    begin
      for I := 0 to AAttachment.Count - 1 do
        TIdAttachmentFile.Create(HMsg.MessageParts,AAttachment[I]);
    end;
  try
    try
      HSMTP.Send(HMsg);
    except
      Result := HSMTP.LastCmdResult.NumericCode;
    end;
  finally
    { frei geben }
    HMsg.Free;
    HSMTP.Free;

  end;
end;

end.
leider unkommentiert,
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
uhaetten

Registriert seit: 29. Jan 2008
Ort: St Gallen
7 Beiträge
 
#7

Re: Mailto mit Anhang senden

  Alt 4. Feb 2008, 16:04
vielen Dank für eure Antworten. Ich werd mal sehen, was ich so hinkriege
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 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