Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi e-Mail aus Prg heraus versenden (https://www.delphipraxis.net/45709-e-mail-aus-prg-heraus-versenden.html)

kalmi01 11. Mai 2005 08:55


e-Mail aus Prg heraus versenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

da in letzter Zeit häufiger mal fragen gestellt wurden, wie:

Zitat:

Wie kann ich aus meinem Prog eine eMail versenden ?
oder
Zitat:

Wie Mail versenden ohne Outlook ?
Deshalb hier mal eine kleine Unit, die auf INDY basierend Mails inkl. Anhang aus dem eigenen Prog per SMTP versendet.

Meflin 24. Mai 2005 19:38

Re: e-Mail aus Prg heraus versenden
 
Wäre das nicht in der CodeLib besser aufgehoben?


alzaimar 24. Mai 2005 20:00

Re: e-Mail aus Prg heraus versenden
 
Oder so (ohne INDY):
Delphi-Quellcode:
Function UrlEncode (Const s : String) : String;
Var
  i : Integer;

Begin
  Result := '';
  For i:=1 To length (s) do
    If ord (s[i]) in [33..127] then
      Result := Result+s[i]
    Else
      Result := Result+'%'+IntToHex (Ord(s[i]),2);
End;

Procedure SendMailViaStandardEMailClient (aRecipients, aSubject, aBody, aAttachment);
Var
  aMailCmd : String;

Begin
  aMailCmd := 'mailto:'+aRecipients + '?subject='+aSubject;
  if aBody <>'' Then
    aMailCmd := aMailCmd + '&body='+aBody;
  If aAttachments <>'' Then
    aMailCmd := aMailCmd + '&attach="' + aAttachment +'"';
  aMailCmd := UrlEncode (aMailCmd);
  ShellExecute (Application.Handle,'OPEN', PChar (aMailCmd), nil, nil, SW_SHOWDEFAULT);
End;
Vorteil: INDY wird nicht benötigt.
Nachteil: Klappt nicht mit allen email clients. Lotus z.B. öffnet nur den Dialog zum Verfassen einer mail.

Alternativ zu Indy kann man auch die ICS Kompoenten von Francois Piette (www.overbyte.de) nehmen. Die sind Freeware, mit Source und seit Jahren weltweit im Einsatz (also stabil).

RonnyKIEL 25. Mai 2005 00:17

Re: e-Mail aus Prg heraus versenden
 
Hi, aber www.overbyte.de ist offline.
Bekomme ich jedenfalls angezeigt
Gruss, Ronny

bigg 25. Mai 2005 00:32

Re: e-Mail aus Prg heraus versenden
 
ihr meint bestimmt:
http://www.overbyte.be

kalmi01 25. Mai 2005 06:57

Re: e-Mail aus Prg heraus versenden
 
Moin, moin, alzaimar,

Deine Variante ist nett, eignet sich aber nicht zum Versand von eMail's, ohne das der Anwender etwas tun muß bzw. etwas mitbekommt.
Bevor jetzt jemand nach dem Datenschutz schreit, ich verwende soetwas, um von meinen Prog's Fehlermeldungen/Screenshot/Fehlerdateien zu bekommen.
Davon brauch der Anwender nichts wissen, es reicht vollkommen, wenn er mich anruft und ich ihm sagen kann, wo das Problem liegt und das bereits ein Update für Ihn bereit steht.
(Eindruck-Schind) :lol: :lol: :lol:

sieht ja ganz nett aus, iss aber auch nicht ganz billig.
Oder hab ich da was übersehen ?

doom98 25. Mai 2005 07:33

Re: e-Mail aus Prg heraus versenden
 
Mailhost muss ich dort einen angeben? bzw welchen? Oder besser gefragt wo finde ich solche freien SMTP Server?

jfheins 25. Mai 2005 07:35

Re: e-Mail aus Prg heraus versenden
 
Nun, du musst dies E-Mail halt bei irgendeinem SMTP-Server abladen ...
Vielleicht bietet dein Provider ja soetwas an ...

Normalerweise hast du aber schon bei deine E-Mail-Adresse enen dabei, damit du E-Mails senden kannst.

alzaimar 25. Mai 2005 08:32

Re: e-Mail aus Prg heraus versenden
 
@Alle: Wegen des Tippfehlers (www.overbyte.de) Ich habe mich eben selbst ausgepeitscht. Muss natürlich '...be' heissen.

@Kalmi01: Wat? Kostet wat? Seit wann denn das? Check ich mal.... :-D Stimmt nicht, ist Freeware. Steht auf der Homepage. Download geht auch. Aber die Applikation IMD (Instant Messaging Delphi) kostet was. Vielleicht hast Du das verwechselt.

Meine Variante ist wirklich nicht absolut tauglich, zeigt aber, wie leicht man es sich machen kann. Soweit ich mich erinnere, reagiert Outlook und OutlookExpress ordendlich auf das mailto und unterstützt alle Features, ich meine, mit irgend einer Option schicken die das gleich weg, aber wer benutzt schon Outlook (ausser er ist suizidal angehaucht :mrgreen: ).

Also: Falls INDY nicht überall verfügbar ist, sollte man die ICS-Komponenten nehmen (meine Meinung).

stonimahoni 21. Jun 2005 11:18

Re: e-Mail aus Prg heraus versenden
 
hi leute...

habe mir mal grade die komponente von kalmi01 angeeignet und ausprobiert...allerdings erhalte ich folgenden fehler : Socketfehler # 10053
die software hat die verbindung unterbrochen

kann mir einer sagen was das bedeutet?

thx im vorraus.


mfg

stoni

Catbytes 21. Jun 2005 11:21

Re: e-Mail aus Prg heraus versenden
 
Hallo,

probier doch mal SAKEMAIL. :)

alzaimar 21. Jun 2005 12:07

Re: e-Mail aus Prg heraus versenden
 
@stonimahoni: Googel doch einfach mal nach 10053... Ist ein allgemein bekannter Fehler....

stonimahoni 21. Jun 2005 13:30

Re: e-Mail aus Prg heraus versenden
 
@ alzaimar : hab ich gemacht aber irgendwie hilft nix :/
mtu hab ich verändert aber bringt nix und sonst hab ich nix gescheites gefunden
und mit connectiontimeout unter outlook und outlook express brauch ich ja nicht arbeiten, zumal die kompo ja alles über indy macht und somit ohne ms zeugs.

mal weiterschauen und ansonsten andere lösung versuchen

mfg


@ catbytes : das sakemail funktioniert genausowenig :/ selber fehler : socketfehler 10053 :/

*grummel*

hat jmd ne lösung für mein prob ?

Sourcemaker 18. Nov 2005 10:53

Re: e-Mail aus Prg heraus versenden
 
Hi Alzaimar,

haben Deinen folgenden Code ausprobiert aber es öffnet sich nur Outlook-Express mit den
angegebenen Daten aber ohne Attachment.

Delphi-Quellcode:
 Function UrlEncode (Const s : String) : String;
Var
  i : Integer;
Begin
  Result := '';
  For i:=1 To length (s) do
    If ord (s[i]) in [33..127] then
      Result := Result+s[i]
    Else
      Result := Result+'%'+IntToHex (Ord(s[i]),2);
End;

Procedure SendMailViaStandardEMailClient (aRecipients, aSubject, aBody, aAttachment: string);
Var
  aMailCmd : String;
Begin
  aMailCmd := 'mailto:'+aRecipients + '?subject='+aSubject;
  if aBody <>'' Then
    aMailCmd := aMailCmd + '&body='+aBody;
  If aAttachment <>'' Then
    aMailCmd := aMailCmd + '&attach="' + aAttachment +'"';
  aMailCmd := UrlEncode (aMailCmd);
  ShellExecute (Application.Handle,'OPEN', PChar (aMailCmd), nil, nil, SW_SHOWDEFAULT);
End;
Du sprachst von unterschiedlichen Verhalten bei verschiedenen Mail-Programmen, ist das auch
so eins ?
Wie weit übernimmt Lotus die Daten ?

Gruß

Frank

Grishnak 18. Nov 2005 12:28

Re: e-Mail aus Prg heraus versenden
 
Zitat:

Zitat von kalmi01
Bevor jetzt jemand nach dem Datenschutz schreit, ich verwende soetwas, um von meinen Prog's Fehlermeldungen/Screenshot/Fehlerdateien zu bekommen.
Davon brauch der Anwender nichts wissen, es reicht vollkommen, wenn er mich anruft und ich ihm sagen kann, wo das Problem liegt und das bereits ein Update für Ihn bereit steht.

Ich persönlich möchte kein Programm auf meinem Rechner, das ohne mein Wissen e-Mails verschickt! Egal zu welchem Zweck!

RavenIV 18. Nov 2005 12:41

Re: e-Mail aus Prg heraus versenden
 
Zitat:

Zitat von Grishnak
Zitat:

Zitat von kalmi01
Bevor jetzt jemand nach dem Datenschutz schreit, ich verwende soetwas, um von meinen Prog's Fehlermeldungen/Screenshot/Fehlerdateien zu bekommen.
Davon brauch der Anwender nichts wissen, es reicht vollkommen, wenn er mich anruft und ich ihm sagen kann, wo das Problem liegt und das bereits ein Update für Ihn bereit steht.

Ich persönlich möchte kein Programm auf meinem Rechner, das ohne mein Wissen e-Mails verschickt! Egal zu welchem Zweck!

stimmt, da hätte ich (und vor allem mein ZoneAlarm) auch etwas dagegen...
Da könnte ja weiss-Gott-was per email verschickt werden :-(

programmierer 31. Jan 2006 13:33

Re: e-Mail aus Prg heraus versenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mit Delphi ein Programm geschrieben, mit dem man Mails mit Anhang versenden kann! Mit dem Prog kann man bis jetzt nur senden, nicht empfange, was auch erstmal reicht!
Wenn ich die Unit SendMail einbinde und die Parameter übergebe, funktioniert alles einwandfrei!
Wenn ich dann aber eine Mail verschicken will, kommt fast immer eine Fehler (siehe Anhang). Da muss ich immer erst mit Outlook Express meine Mails abrufen, bevor das geht. Wie kann ich es einrichten, dass auch Benutzer ohne Outlook E-Mails versenden können?

marabu 31. Jan 2006 13:48

Re: e-Mail aus Prg heraus versenden
 
Herzlich willkommen in der Delphi-PRAXiS.

Für mich sieht es so aus, als ob du dich erst einmal per POP3 an deinen mail server wenden musst, damit er SMTP akzeptiert - ein übliches Verfahren zur Erhöhung der Sicherheit. Es muss ja nicht Outlook sein, du kannst das ja auch in deinem Programm erledigen. Und du hättest ruhig auch einen eigenen thread aufmachen dürfen.

Freundliche Grüße vom marabu

programmierer 31. Jan 2006 19:59

Re: e-Mail aus Prg heraus versenden
 
Erstma danke für den Tip!
Ich hoffe, es stört euch nicht, wenn ich nochma kurz hier ne Frage stelle und nicht gleich nen neuen Thread aufmache. Ich kenn das aus anderen Foren, dass man bei sowas sofort auf die Suche verwiesen wird. (Soll jetzt keine schlechtes Vorurteil euch gegenüber sein!).
Zu meiner Frage: Muss ich mich vorher mit dem Pop3 Server des Senders oder des Empfängers verbinden? Ich tippe einfach mal auf den Sender, weil der Empfänger kann das ja nicht voraussehen, dass er ne Mail bekommt!
Und vielleicht kann mir auch mal jemand sagen, wie man das macht, oder zumindest, wo ich was dazu finde!

marabu 1. Feb 2006 06:44

Re: e-Mail aus Prg heraus versenden
 
Es ist schwer dir zu helfen, wenn du weder deine Delphi Version mitteilst, noch die verwendeten Komponenten genau bezeichnest. Am besten ist es, wenn du den Quelltext zeigst, mit dem du Probleme hast. Sind es nur wenige Zeilen, dann kannst du sie mit dem Button Delphi-Code aus der Werkzeugleiste des Beitragseditors in die Delphi tags [ delphi] und [ /delphi] einpacken. Ist es mehr, dann hänge es als ZIP Archiv an.

marabu

programmierer 1. Feb 2006 13:21

Re: e-Mail aus Prg heraus versenden
 
Also ich arbeite mit Delphi 2005 PE und Indy 10!
Hier mal der Quellcode: (ich setzte erstmal voraus, dass es ein Web.de Konto ist

Delphi-Quellcode:
procedure TForm1.sendenClick(Sender: TObject);
 var empfänger, absender, subject, nachricht, datei:string;
begin
 empfänger:=adresse.Text; //Empfänger-Mail
 absender:=name.Text; //Absendername oder Mail
 subject:=betreff.Text; //Betreff
 nachricht:=text.Text; //Nachricht
 datei:=pfad.Text; //Anhang
 Send_Mail('smtp.web.de', absender, empfänger, subject, nachricht, datei); //Mail senden
end;
Ich weiß, dass das mit dem Dateipfad ni so elegant gelöst ist, aber das interessiert zur Zeit nicht!

//Edit: Erstma Danke, dass ihr mir helfen wolltet, aber ich hab es durch probieren jetzt doch selber hinbekommen. :bounce2:

Jelly 1. Feb 2006 15:40

Re: e-Mail aus Prg heraus versenden
 
Dein Fehlermeldung spricht doch für sich. Du musst Dich erst bei POP3 Server anmelden, bevor du Senden kannst. Steht doch genau so drin.

Die Frage, ob du Dich zum POP3 Server des Empfängers verbinden sollst reicht 2 mal klar denken.
1. Was hat der Empfänger mit deinem Sender zu tun
2. Woher willst Du den POP3 Server des Empfängers kennen, geschweige denn die Zugangsdaten dazu. :mrgreen:

Damit sollte die Frage doch beantwortet sein, oder ? Schnapp dir die IdPOP3 Kompo auf dein Form, log dich beim POP3 Server von web.de unter deinem Account an, und log dich dort wieder aus. Anschliessend solltest Du in der Lage sein über eine gewisse Zeitspanne hinweg EMails zu verschicken, sofern web.de nicht noch andere Blockmechanismen eingebaut hat. Das sollte eine neue Fehlermeldung jedoch dann zeigen.

programmierer 1. Feb 2006 16:12

Re: e-Mail aus Prg heraus versenden
 
Jetzt geht ja alles, trotzdem Danke!

DataCool 3. Feb 2006 13:16

Re: e-Mail aus Prg heraus versenden
 
Hi,

ich habe auch mal was zu der Thematik geschrieben, rausgekommen ist ne fertige Klasse womit eigentlich jeder klar kommen sollte.

Klasse und Demo zum Mailversand

Gruß DataCool

kalmi01 5. Feb 2006 17:33

Re: e-Mail aus Prg heraus versenden
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von Grishnak
Zitat:

Zitat von kalmi01
Bevor jetzt jemand nach dem Datenschutz schreit, ich verwende soetwas, um von meinen Prog's Fehlermeldungen/Screenshot/Fehlerdateien zu bekommen.
Davon brauch der Anwender nichts wissen, es reicht vollkommen, wenn er mich anruft und ich ihm sagen kann, wo das Problem liegt und das bereits ein Update für Ihn bereit steht.

Ich persönlich möchte kein Programm auf meinem Rechner, das ohne mein Wissen e-Mails verschickt! Egal zu welchem Zweck!

stimmt, da hätte ich (und vor allem mein ZoneAlarm) auch etwas dagegen...
Da könnte ja weiss-Gott-was per email verschickt werden :-(

Ihr habt Recht !!!
Zumindest, im Privatbereich, da wollte ich sowas auch nicht !

Ich setze diesen Mechanismus (nur) in der Firma ein !

Zum Verständnis:
Ich betreue ~80 Vollzeit-Anwender plus ~200 Gelegenheits-Anwender als One-Man-Show.
1. + 2.-Level-Support, Software-Entwicklung und was sonst noch so anfällt.
Ohne vorgenannte Mechanismen hätte ich schon Magengeschwüre, gross wie Medizinbälle.

Der Feind eines Jeden Adminstrators/Programmierers ist der Anwender, weil:
1. Fehlermeldung total WischiWaschi
2. Fehlermeldung erst nach 10 weiteren Versuchen
3. Problem nicht nachvollziehbar, wenn ich remote auf dem Rechner bin

Seit Einführung des obigen Mechanismus:
1. erkenne ich (fast) alle Probleme noch vor dem Anwender
2. kann sie beheben oder entsprechende Massnahmen einleiten
3. Schlafe länger und ruhiger

DataCool 5. Feb 2006 19:01

Re: e-Mail aus Prg heraus versenden
 
Hi,

ich benutze den obrigen Quellcode um mir "Warn-Email" von meinen Server schicken zu lassen.
Z.B. wenn ein Logfile größer als "erlaubt" wird oder bei kritischen Server Anwendungen ein Fehler auftritt.

Dasist sehr praktisch und hilft Fehler zu vermeiden bevor Sie überhaupt auftreten.

Gruß Data

XHelp 5. Feb 2006 21:23

Re: e-Mail aus Prg heraus versenden
 
Also wenn man email aus dem programm nur versenden will, dann kann man es mit hilfe eines php getaway machen. Die vorteile:
1. ist einfacher... kein smtp server benötigt
2. man kann dann, wenn man es braucht, die firewall umgehen, wenn man es mit hilfe eines versteckten Internet Explorer festers macht, denn meistens ist ie bei der firewall freigegeben.

nachteile:
man braucht einen server, wo man die getaway bzw. den php script laufen lässt.

DataCool 6. Feb 2006 11:16

Re: e-Mail aus Prg heraus versenden
 
Hi,

und den habe ich in diesem Fall bei meinen Windows Server nicht ;-)
Sonst wäre Deine Variante sicherlich einfacher ;-)

Gruß Data

XHelp 6. Feb 2006 15:37

Re: e-Mail aus Prg heraus versenden
 
Zitat:

Zitat von DataCool
Hi,

und den habe ich in diesem Fall bei meinen Windows Server nicht ;-)
Sonst wäre Deine Variante sicherlich einfacher ;-)

Gruß Data

hä? ist es auf meine aussage bezogen?

Wie bei deinem Windows Server?

DataCool 6. Feb 2006 15:45

Re: e-Mail aus Prg heraus versenden
 
Hi,

ja das war auf Deine Message bezogen, auf meinem Windows-Server läuft kein PHP.
Somit kann ich das nicht über einen "PHP-Gateway" machen.

Mehr wollte ich gar nicht sagen ;-)

Gruß Data

XHelp 6. Feb 2006 21:58

Re: e-Mail aus Prg heraus versenden
 
Was ist es denn für ein server??? ich meine, wer vermietet schon webserver (vor allem windows server) ohne php server? Es doch ein bischen unlogisch... und wenn es ein root server ist (was ich bezweifle)0, kannst du ja das selber installieren...

DataCool 6. Feb 2006 23:16

Re: e-Mail aus Prg heraus versenden
 
@XHelp:

Wer hat gesagt das es sich um einen Webserver handelt ?
Nehmen wir mal an der steht es ist ein Windows-Server der einfach in einem Firmennetz als Server steht.
Von aussen auf bestimmten Ports für meine Anwendungsdienste erreichbar ist.

Treten da jetzt Fehler auf oder Plattenplatz wird knapp oder oder oder ...
Dann schickt mein Dienst mir ne Mail und damit konnte ich schon so manches Problem im Keim ersticken bzw.
den Fehler beheben bevor der Kunde mir den Fehler überhaupt gemeldet hat.

Gruß Data

XHelp 7. Feb 2006 00:24

Re: e-Mail aus Prg heraus versenden
 
naja... dann kannst du doch noch einen server suchen, wo es php gibt... gibts ja so viele kostenlose web hoster...


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