Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Eine Mail versenden aus einem Programm (https://www.delphipraxis.net/76126-eine-mail-versenden-aus-einem-programm.html)

Hallo_Thomas 30. Aug 2006 11:27


Eine Mail versenden aus einem Programm
 
Hallo,

ich suche jetzt schon seit Tagen einen Programm-Scoure womit ich Emails versenden kann ohne Erfolg.

Der EMail-Scoure soll wie ein Kontaktformular funktionieren.Ich wollte eine feste Email(Meine) eintragen & dann trägt der User seine Daten ein & die Email wird versendet.

Ich habe leider nur was wie
Zitat:

mailto(und ähnliches)
gefunden.Aber es soll ja nicht das Standard Email Programm benutzen sondern die eMail soll selbstständig vom Programm versendet werden!

PS. Habe ich auch schon mit Indy beschäftigt, leider habe ich es nicht geschafft, das die mail in meinem Postfach ankommt!

Habe auch schon dieses Tutorial gelesen, doch auch da war nur ein Mail programm wo ich mich erst am Mailserver einloggen muss.


Ich hoffe mir kann jemand helfen

Schrammel 30. Aug 2006 11:37

Re: Eine Mail versenden aus einem Programm
 
Hast Du Windows 2000 Professional oder Windows XP Professional auf den Client- oder User-Rechnern? Zu beiden gehört eine SMTP-Komponente.
Ich bin mir nicht 100%ig sicher. Aber eigentlich solltest Du damit und einer TIdSMTP-Kompontene, die Du mit localhost verbindest, eine Mail versenden können.

Wenn das nicht geht, dann bleibt nur der Weg über den Mail-Server, also dem SMTP-Server, des Nutzers.

Was hindert dich daran, in einem Konfigurations-Dialog die notwendigen Info's (SMTP-Server, Port, Authentifizierungsmethode, usw) erfassen zu lassen und dann mit den Daten zu arbeiten?

MfG

Stefan Schramm

Klaus Kirchhoff 30. Aug 2006 11:49

Re: Eine Mail versenden aus einem Programm
 
Hallo,
Du kannst auf die Indy-Componenten zurückgreifen... Schau dir doch einfach mal www.k-k-i.de da gibt es einiges dazu!

Jelly 30. Aug 2006 11:52

Re: Eine Mail versenden aus einem Programm
 
Kuck dir mal mein MailTemplateSystem aus der Codelib an. Eventuell hilft Dir das weiter.

Prinzipiell brauchst Du ein TIdMessage und ein TIdSMTP Komponente umd selbständig aus dem Programm heraus Mails zu verschicken. Die Indydemos sollten das aber auch zeigen, wie's geht.

Hallo_Thomas 30. Aug 2006 12:16

Re: Eine Mail versenden aus einem Programm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab XP.

Ich habs mal mit TIdMessage,TIdSMTP,TIdSMTPServer versucht, doch leider hab ichs nicht hinbekommen.

An dem Topic hatte ich mich orientiert


Zitat:

Was hindert dich daran, in einem Konfigurations-Dialog die notwendigen Info's (SMTP-Server, Port, Authentifizierungsmethode, usw) erfassen zu lassen und dann mit den Daten zu arbeiten?
Da ich in meinem Programm so ne Art Kontaktformular haben möchte, finde ich es einfach unpassend/viel zu kompliziert wenn jeder User jedes mal seine Server Daten heraussuchen muss, die hab nich mal ich im Kopf!

Jelly 30. Aug 2006 12:27

Re: Eine Mail versenden aus einem Programm
 
Zitat:

Zitat von Hallo_Thomas
Da ich in meinem Programm so ne Art Kontaktformular haben möchte, finde ich es einfach unpassend/viel zu kompliziert wenn jeder User jedes mal seine Server Daten heraussuchen muss.

Um eine Mail zu verschicken, brauchts nun mal einen SMTP Server. Auch Outlook braucht einen. Du brauchst auch ne Telefonnummer, wenn Du jemandem telefonieren willst.

Hallo_Thomas 30. Aug 2006 12:37

Re: Eine Mail versenden aus einem Programm
 
Ich hab das echt noch nie gemacht, ich hatte mich die letzten Tage so ein bisschen belesen, ich dachte der TIdSMTPServer ist die Telefonanlage und die Emailadresse die Nummer die ich anwähle.

Daniel B 30. Aug 2006 12:43

Re: Eine Mail versenden aus einem Programm
 
Es braucht einen Account worüber das läuft, ob du die Daten des Users benutzt oder deine eigenen sei mal egal, aber einfach eine Form mit deiner Mail-Addy und paar Edits für den Text sind definitiv nicht genug. Die Mail-Addy an sich ist in erster Linie kein ziel, das entscheidet der SMTP ob und wohin das soll, aber der muss das erstmal erhalten, dazu brauchst du etwas Arbeit und/oder die richtigen Komponente(n).

shmia 30. Aug 2006 12:49

Re: Eine Mail versenden aus einem Programm
 
Mach dich mal über SMTP ein bisschen schlau.
Auf folgender Seite wird erklärt, wie man mit dem Windows Bordmittel "telnet.exe" eine
EMail verschicken kann.
http://www.wolf-jochen.de/eMail/Teln...net-senden.htm

Also gibt es für dich 3 Schritte, die genau in der Reihenfolge zum Erfolg führen.
1.) du brauchst einen SMTP-Server; entweder der deines Providers oder ein anderer öffentlicher SMTP-Server (wird auch Open-Relais genannt)
2.) du führst den Test durch wie im Link beschrieben; als Empfänger nimmst du echo@tu-berlin.de, denn dann bekommst du eine Echomail zurück
3.) du probierst es mit deinem Indy-Testprogramm

Hallo_Thomas 30. Aug 2006 15:15

Re: Eine Mail versenden aus einem Programm
 
Das Programm soll auf jeden X-beliebigen Rechner laufen, & zu meiner Email-Addi Kontakt aufnehmen können, natürlich möchte ich nicht meine Email Zugangsdaten ins Programm schreiben!

Daniel G 30. Aug 2006 16:04

Re: Eine Mail versenden aus einem Programm
 
Wenn du einen eigenen Webspace hast, könntest du auch einfach ein PHP - Script dort laufen lassen und die Daten über Indy an das Skript schicken.

Wird zum Beispiel in diesem (geschlossenem) Thema behandelt:

EMail ohne SMTP

RobertP 30. Aug 2006 17:47

Re: Eine Mail versenden aus einem Programm
 
Ich würd die auch die Variante mit dem PHP Skript empfehlen. Ist wohl die sicherste. Du könntest auch nen eigenen E-Mail Account für den Zweck erstellen, aber wenn dann irgendnen Witzbold die Daten abfängt und des Passwort ändert hast nur Ärger.

Hallo_Thomas 31. Aug 2006 00:22

Re: Eine Mail versenden aus einem Programm
 
Dankeschön, auf keinen Fall will ich in das Programm ein Paaswort für meinen Emailaccount einbauen, ich glaube das wäre tödlich.

SirThornberry 31. Aug 2006 06:59

Re: Eine Mail versenden aus einem Programm
 
Zitat:

Zitat von Hallo_Thomas
...
Habe auch schon dieses Tutorial gelesen, doch auch da war nur ein Mail programm wo ich mich erst am Mailserver einloggen muss...

Du wirst nicht drum herum kommen dich auf einem mailserver einzuloggen da die meisten EMailanbieter nur noch mails von statichen Mailservern entgegen nehmen. Wenn du also versuchen würdest direkt von deinem Rechner (wohlmöglich sogar noch mit dynamischer IP) eine Mail an den Ziel-SMTP-Server zu senden wird diese in der Regel sofort geblockt.
Ich denke genau aus diesem Grund hast du auch nur wenig/keine Beispiele dazu gefunden da niemand in einem Programm die Zugangsdaten für sein Postfach hinterlegen will.
Die beste Lösung (meiner Meinung nach) wäre das ganze über ein PHP-Script laufen zu lassen. So das du mit TIdHTTP die Daten an eine PHP-Datei sendest welche dir die EMail dann zustellt. Aber auch dabei musst du darauf achten das niemand das Formular nutzt und dich damit zuspammt.

DocBorn 31. Aug 2006 08:17

Re: Eine Mail versenden aus einem Programm
 
jor genau in dieser Situation ist php wirklich dein Freund. Du könntest ja z.B. in einer Stunde nur 10 Mails pro IP-Adresse oder so erlauben, in diese Richtung gibt es aber beliebig viele Möglichkeiten Missbrauch zu unterdrücken, die aber natürlich auch nie vollständig sind.

Hoffe, dass du PHP kannst ;)


Lg Lars

Hallo_Thomas 1. Sep 2006 01:18

Re: Eine Mail versenden aus einem Programm
 
Hallo,
muss leider noch mal hier reinschreiben, da dass andere Thema geschlossen ist!

http://www.delphipraxis.net/internal...ct.php?t=29111

Ich habe den PHP-Code-Beispiel mal ins Netz gestellt und einmal zur Probe im IE angefunkt da klappte es doch mit dem TIDHTTP erhalte ich folgende Fehlermeldung:


<!Doctype HTML PUBLIC"-//w3c//DTD HTML 4.0 Transitional//EN>

Hallo_Thomas 1. Sep 2006 02:33

Re: Eine Mail versenden aus einem Programm
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
begin
  s:=Memo1.Lines.Text;

  Memo1.Lines.Text:=IdHTTP1.Get('http://bananenbunker.de.beta.mtw.ru/mail.php?to=' + 
Edit1.Text + '&sender=' + Edit2.Text +'&priority=' + InTToStr(SpinEdit1.Value) + 
'&subject=' + Edit3.Text + '&mail_text=' + s);

end;

So, ich werd jetzt schlafen gehen, der Fehler liegt bei Memo1.Lines.Text,als ich nur 's' schrieb, gabs keine Fehler!

Hallo_Thomas 1. Sep 2006 12:24

Re: Eine Mail versenden aus einem Programm
 
Ich hab idhttp übelste Probleme bei Zeilenumbrüchen und Leerzeichen, wie kann ich dass beheben?

himitsu 1. Sep 2006 12:31

Re: Eine Mail versenden aus einem Programm
 
Du mußt die entsprechenden Zeichen kodieren.

' ' = '%20'
#13#10 = '%0D%0A'


Also die am Besten alle Zeichen im Bereich [#0..#32, #128..#255] entsprechend umwandeln

'%' + 2-stellige-Hexadezimaldarstellung


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