Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Email über php Script versenden (https://www.delphipraxis.net/15971-email-ueber-php-script-versenden.html)

Matze 8. Feb 2004 10:48


Email über php Script versenden
 
Hi!

Wie kann ich eine E-Mail per php-Script versenden?
Am besten wär's, mit den Indys.

Ich finde hier immer nur die Lösung, wo man Username und Passwort angeben muss, das möchte ich einfach nicht in der exe hinterlassen. ;)

Synonym 8. Feb 2004 10:50

Re: Email über php Script versenden
 
So:

PHP Script!
Code:
mail("webmaster@domain.de","Synonym","
[B]Hallo,[/B]


Dies ist eine eMail, die mit PHP geschickt wurde.",
"From: Beispiel-Name <test@test.de>
Bcc: [email]kopie@kopie.de[/email]
Content-Type: text/html");

und dann hiermit senden!
Delphi-Quellcode:
uses IdMultipartFormData;

{ .... }

procedure TForm1.Button1Click(Sender: TObject);
var
  data: TIdMultiPartFormDataStream;
begin
  data := TIdMultiPartFormDataStream.Create;
  try
    { add the used parameters for the script }
    data.AddFormField('param1', 'value1');
    data.AddFormField('param2', 'value2');
    data.AddFormField('param3', 'value3');

    { Call the Post method of TIdHTTP and read the result into TMemo }
    Memo1.Lines.Text := IdHTTP1.Post('http://localhost/script.php', data);
  finally
    data.Free;
  end;
end;
gruß

synonym

Matze 8. Feb 2004 10:53

Re: Email über php Script versenden
 
Boah, ging das aber schnell! :)

Danke! Werde es gleich mal testen...

Matze 8. Feb 2004 10:59

Re: Email über php Script versenden
 
Was muss ich denn hier eigeben?

Delphi-Quellcode:
data.AddFormField('param1', 'value1');
data.AddFormField('param2', 'value2');
data.AddFormField('param3', 'value3');
Jetzt kommt nämlich:

Zitat:

---------------------------
Projekt1
---------------------------
Socket-Fehler # 10061

Verbindung abgelehnt.
---------------------------
OK
---------------------------

Nachtrag:
Mein Script sieht jetzt so aus:

Zitat:

mail("MeineEmailAdresse","Synonym","
Hallo,

Dies ist eine eMail, die mit PHP geschickt wurde.",
"From: Beispiel-Name <test@test.de>
Content-Type: text/html");

Synonym 8. Feb 2004 11:23

Re: Email über php Script versenden
 
So:

PHP Script!
Code:
<?php
mail("$zu","$betreff","
$text",
"From: $von
Content-Type: text/html");
?>

und dann hiermit senden!
Delphi-Quellcode:
uses IdMultipartFormData;

{ .... }

procedure TForm1.Button1Click(Sender: TObject);
var
  data: TIdMultiPartFormDataStream;
begin
  data := TIdMultiPartFormDataStream.Create;
  try
    { add the used parameters for the script }
    data.AddFormField('zu', 'test@domain.de');
    data.AddFormField('betreff', 'jo funktioniert');
    data.AddFormField('text', 'Hallo, test erfolgreich');
data.AddFormField('von', 'matze@matze.de');

    { Call the Post method of TIdHTTP and read the result into TMemo }
    Memo1.Lines.Text := IdHTTP1.Post('http://localhost/script.php', data);
  finally
    data.Free;
  end;
end;
gruß

synonym

P.S. Du darfst das
Code:
<?php ?>
nicht vergessen!

Matze 8. Feb 2004 11:30

Re: Email über php Script versenden
 
Man merkt, dass ich keine Ahnung von php hab. ;)

Ein fehler kommt immer hier:

Delphi-Quellcode:
Memo1.Lines.Text := IdHTTP1.Post('http://localhost/script.php',

Synonym 8. Feb 2004 12:07

Re: Email über php Script versenden
 
wie genau machst du das denn? über nen externen server?

synonym

Matze 8. Feb 2004 18:49

Re: Email über php Script versenden
 
Ja, bei IdHTTP hab ich beim Host: mailto.t-online.de eingestellt.

Synonym 8. Feb 2004 22:21

Re: Email über php Script versenden
 
häh? wo hast du denn die php datei liegen? bei idhttp musst du nichts eingeben...

das php script sendet automatisch über sendmail!

synonym

Matze 9. Feb 2004 09:50

Re: Email über php Script versenden
 
Also die php Datei hab ich im Projektordner, muss ich die auf nen Server laden?

Sorry, ich frag schon blöd. :(

Treffnix 9. Feb 2004 09:57

Re: Email über php Script versenden
 
Also, ich hab ja selber keine Ahnung, aber soviel versteh ich:

Wo du die PHP-Datei lässt, ist wohl relativ egal. Nur muss der Ort der Datei anstatt des
Zitat:

'http://localhost/script.php'
eingefügt werden.

Matze 9. Feb 2004 10:06

Re: Email über php Script versenden
 
Danke, das hatte ich jedoch schon so.

Bei dieser Zeile:

Delphi-Quellcode:
Memo1.Lines.Text := IdHTTP1.Post(IncludeTrailingBackslash(ExtractFilePath(ParamStr(0))) + 'mail.php', data);
kommt folgender Fehler:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Projekt1.exe ist eine Exception der Klasse EIdSocketError aufgetreten. Meldung: 'Socket-Fehler # 10061
Verbindung abgelehnt.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Treffnix 9. Feb 2004 10:29

Re: Email über php Script versenden
 
Hast du denn nen Apachen laufen?

Matze 9. Feb 2004 10:30

Re: Email über php Script versenden
 
Sorry, aber was is des? :duck:

Treffnix 9. Feb 2004 10:36

Re: Email über php Script versenden
 
Das ist der Server, der PHP-Seiten erst das Leben einhaucht. Der interpretiert wohl die Scripte und macht Webseiten draus. Jedenfalls muss son Ding wohl auf dem Rechner laufen, auf dem die PHP-Seite liegt.

Ich glaube www.apache.org ist die Adresse. Das Ding ist free soweit ich weiss.

Matze 9. Feb 2004 10:42

Re: Email über php Script versenden
 
:wall:

Vielen Dank! Ich hab's einfach auf den Server hochgeladen, wo ich bin, jetzt geht's :)

Mein spezieller Dank geht auch an Synonym. :thumb:

Matze 9. Feb 2004 10:51

Re: Email über php Script versenden
 
Jetzt hab ich nur noch das Problem, dass die Dinge, wie Betreff, Text, ... nicht im Script verändert werden, bzw. nicht gesendet werden.

Es kommt immer folgendes:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Projekt1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: 'Kein Argument für Format '%20V''. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
das kommt, vermute ich mal, daher:

Delphi-Quellcode:
    data.AddFormField('zu', 'matthias.hielscher@t-online.de');
    data.AddFormField('betreff', 'jo funktioniert');
    data.AddFormField('text', Memo1.Text);
    data.AddFormField('von', 'matze@matze.de');
mein php-Script sieht so aus:

Code:
<?php
mail("$zu","$betreff","
$text",
"From: $von
Content-Type: text/html");
?>

Matze 9. Feb 2004 19:09

Re: Email über php Script versenden
 
Ich denke, den Text muss man in der php-Datei speichern, nur will ich nicht mein FTP-Passwort angeben müssen, das ich brauch, wenn ich die Datei auf dem Server ändern will.

Wie löst man denn sowas am Dümmsten?

Synonym 9. Feb 2004 20:30

Re: Email über php Script versenden
 
sendet er also die mail auch nicht? manchmal haut indy nämlich ne fehlemeldung raus, und es ist trotzdem alles richtig gesendet!

synonym

Matze 10. Feb 2004 09:23

Re: Email über php Script versenden
 
Also die Mail wird ordnungsgemäß versendet, nur kann ich den Inhalt nicht ändern, da das Script auf dem Server ist und ich meinen PC nicht als Server laufen lassen kann.

DaBass 10. Feb 2004 09:43

Re: Email über php Script versenden
 
was willst du denn am inhalt des scriptes ändern? an diesem musst du nichts anpassen.....

Matze 10. Feb 2004 10:59

Re: Email über php Script versenden
 
Der Inhalt des Scropts ist doch die E-Mail, die versendet wird.
Jetzt möchte ich aber einen anderen Text in der E-Mail haben, so muss ich den Inhalt des Scripts doch verändern.

DaBass 10. Feb 2004 12:17

Re: Email über php Script versenden
 
nein, den inhalt des skriptes musst du sicherlich nicht ändern!
du übergibst die daten aus der delphi form als parameter und dieses script führt dann einfach den mail vorgang aus!

oder verstehe ich deine frage falsch??

Matze 10. Feb 2004 12:40

Re: Email über php Script versenden
 
Ne, du verstehst es richtig :)

Cool, aber komisch, dass die daten dann nicht übermittelt werden.

DaBass 10. Feb 2004 12:49

Re: Email über php Script versenden
 
wirklich koomisch! eigentlich sollte dies so funktionieren! :wall:

Matze 10. Feb 2004 13:04

Re: Email über php Script versenden
 
Hmm, kann es sein, dass ich hier irgendwas falsch mache?

DaBass 10. Feb 2004 13:15

Re: Email über php Script versenden
 
das mail erhälst du ja, einfach ohne betreff und text, oder?

Matze 10. Feb 2004 13:20

Re: Email über php Script versenden
 
Also, so kommen die Daten:

Delphi-Quellcode:
    data.AddFormField('zu', 'matthias.hielscher@t-online.de');
    data.AddFormField('betreff', 'jo funktioniert');
    data.AddFormField('text', 'Hallo, test erfolgreich');
    data.AddFormField('von', 'matze@matze.de');
Nur bekomme ich halt den Fehler, wenn ich
Delphi-Quellcode:
Memo1.Text
angebe.

Synonym 10. Feb 2004 13:52

Re: Email über php Script versenden
 
bekommst du den fehler von delphi oder vom php script?

synonym

Matze 10. Feb 2004 15:35

Re: Email über php Script versenden
 
Er tritt auf, sobald ich die Mail senden will, von wo genau der kommt, weiß ich nicht ;)

[Edit]Auf jeden Fall ist's so, dass wenn ich folgende zeile weglasse, kein fehler kommt.

Delphi-Quellcode:
Memo1.Lines.Text := IdHTTP1.Post('http://www. ... mail.php', data);
[/Edit]

Matze 11. Feb 2004 10:39

Re: Email über php Script versenden
 
Ich weiß, ich nerve. :(

Kann mir einer sagen, wieso das hier nicht geht und wie ich es richtig machen muss?

Delphi-Quellcode:
 data.AddFormField('text', Memo1.Text);

Matze 11. Feb 2004 11:41

Re: Email über php Script versenden
 
Warum es nicht geht ist mir jetzt eigentlich klar, ein String wird verlangt und ich gebe TStrings an.

Ich habe es in einer Schleife probiert, und die einzelnen Zeilen in eine Zeile geschrieben, aber das geht auch nicht.


egal, wie ich es mache, es kommt immer das hier, womit ich überhaupt nichts anfangen kann:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Projekt1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: 'Kein Argument für Format '%20V''. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Treffnix 11. Feb 2004 11:51

Re: Email über php Script versenden
 
was steht denn im Memo? '%20' oder so ist doch im Browser ein Leerzeichen. Vielleicht vertägt er das CLF nicht oder so?
Ich würd wie folgt vorgehen:
1. Ein Wort im Memo testen ohne Leerzeichen und CLF
2. Ein Satz mit Leerzeichen ohne CLF
3. Memo1.Text in einer Variablen zwischenspeichern und die übergeben
4. Wenn 3. nicht klappt, die Variable durchparsen und alle CLFs entfernen und dann übergeben
5. Wenn 4. geklappt hat, schlau machen, was du anstelle des CLFs angeben muss und entsprechend ersetzen.

Kann natürlich auch sein, dass ich voll aufm Holzweg bin...

Matze 11. Feb 2004 11:57

Re: Email über php Script versenden
 
Danke, jetzt kappier ich gar nichts mehr.

Ich hab jetzt in einem neuen Memo ein paar Zeilen stehen, mit Leerzeichen und so, das versendet wird.
Aber, es kommt nachher alles in einer zeile an (die Schleife hab ich entfernt ;) ).


Nachtrag: Wenn ich kurzen Text im memo eingebe, dann wird's verschickt, ist der text länger, dann nicht.
Und leider kommt halt alles als Einzeiler an.

Synonym 11. Feb 2004 12:06

Re: Email über php Script versenden
 
Dann musst du die Zeilenumbrüche im PHP Script verändern...

Den Fehler des Memo1.textes am schluss könntest du verhindern, indem du im PHP Script vor ?> folgende Zeile ergänzt!

Code:
echo("E-Mail erfolgreich gesendet");
Und dann solltest du am Anfang noch nach <?php folgendes einfügen:

Code:
$text = stripslashes($text);
Gruß

synonym

Matze 11. Feb 2004 12:10

Re: Email über php Script versenden
 
Es ist echt nett, dass ihr euch so bemüht.

@Synonym: Der Fehler ist genau der selbe wie vorher. :(

Synonym 11. Feb 2004 12:12

Re: Email über php Script versenden
 
Führ mal bitte das Script online im Browser aus...

mach es dabei so

http://www.domain.de/script.php?zu=l...llo&von=lalala u.s.w.

Und schau was der Browser sagt!

gruß

synonym

Synonym 11. Feb 2004 12:13

Re: Email über php Script versenden
 
ich versuch mal eben ein Beispiel zu schreiben...vielleicht gelingt es mir ja besser :-)

gruß

synonym

Treffnix 11. Feb 2004 12:16

Re: Email über php Script versenden
 
Dann ist es vermutlich das, was ich meinte. PHP kennt vermutlich kein Carriage Return Line Feed ( das ist das, was ich mit CLF meinte. Das "Return" hab ich dabei irgendwie öhm.. verschluckt :oops: )

Also den Text durchackern und alle Vorkommen von #13#10 durch den PHP-Befehl für Zeilenumbruch ( den ich leider nicht kenne ) ersetzen.

TMemo.Text ist übrigens nicht vom Typ TStrings. Das ist TMemo.Lines.

Synonym 11. Feb 2004 12:28

Re: Email über php Script versenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir funktioniert es übrigens ohne Probleme...hier das Proggi!

Synonym

P.S. Lasse die mail.php nur kurz online, sonst senden alle über meinen Server anonyme Mails!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Seite 1 von 2  1 2      

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