Mail Prog

Alles, was PHP betrifft, kann hier besprochen werden.

Postby 1Euro » 10. April 2005 13:47

ok hab mir die Datei geholt und gespeichert selbes verzeichniss jetzt kommt:
Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /opt/lampp/lib/php/Net/Socket.php on line 108

Warning: fsockopen() [function.fsockopen]: unable to connect to mailgmxnet:25 (Unknown error) in /opt/lampp/lib/php/Net/Socket.php on line 108
Fehler beim E-Mail-Versand.


Bitte helft mir
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

Postby Jan H. Krüger » 10. April 2005 13:51

Ähm... was meinst du mit "Datei geholt"?
Mehr wie den im Beispiel genannten Quelltext an deine eigene Bedürfnisse anpassen ist nicht nötig. Eine zusätzliche Datei speichern auch nicht.

Schau mal, hier wie ich die Mailklasse verwende.
mailtest.php:
Code: Select all
<?php
require_once('Mail.php');

# Mailaccount-Daten
$params['host'] = 'mail.gmx.net';
$params['auth'] = true;
$params['username'] = ''; #Hier die eigene GMX-Mailadresse eintragen. Mailadresse, nicht GMX-Benutzernummer
$params['password'] = ''; #Das Passwort

# Empfänger-Adresse bestimmen
$recipients = ""; #Hier eine Kommegetrente Auflistung aller Empfänger

# Header der Mail erstellen. Im From Feld muss zwingend die Mailadresse des Absenders eingetragen werden,
# eine falsche ist nicht zulässig. Es wird eine PEAR Fehlermeldung ausgelöst.
$headers['From']    = $params['username'];
$headers['To']      = 'Eingetragene Empfängerliste';
$headers['Subject'] = 'Dies ist eine Testnachricht';

# Definiertes Umbruchszeichen.
$break = "\n";

# Text der Mail
$body = 'Dies ist ein Test '.$break.' dieser Funktion';

# Create the mail object using the Mail::factory method
$mail_object =& Mail::factory('smtp', $params);

# Versenden der Mail
$status = $mail_object->send($recipients, $headers, $body);
if (PEAR::isError($status))
  echo "Fehler beim E-Mail-Versand.";
?>


Mehr musst du wirklich nicht machen. Keine weitere Datei, keine weiteren Befehel, nix.
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby 1Euro » 10. April 2005 14:14

hi,
mir geht es eigentlich nur um folgenden Teil:

require_once('Mail.php');

oder

include('Mail.php');


das habe ich bei mir jetzt eingefügt und mir die datei Mail.php gedownloaded, aber seit dem ich das gemacht habe kam der neue Fehler siehe meine letzte Antwort.
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

Postby Wiedmann » 10. April 2005 14:15

Wie Jan schon schrieb... Du musst keine Datei holen oder so. Einfach so wie im Beispiel includen. PHP findet die dann schon (es sein denn, du hat in der php.ini rumgepfuscht).

PHP findet sie ja jetzt offensichtlich auch. Include oder Require ist hier fast egal.

Code: Select all
Warning: fsockopen() [function.fsockopen]: unable to connect to [b]mailgmxnet[/b]:25 (Unknown error) in /opt/lampp/lib/php/Net/Socket.php on line 108

Die Namen der beteiligten Mailserver sollte man natürlich richtig schreiben...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby 1Euro » 10. April 2005 14:30

hallo,
ok kannst du mir dann bitte die Fehler nennen, denn soweit ich das sehe habe ich keine gemacht :///.

<?php
include('Mail.php');
$recipients = 'joe@example.com';

$headers['From'] = 't.test@gmx.de';
$headers['To'] = 'mi.arndt@t-online.de';
$headers['Subject'] = 'Test message';

$body = 'Test message';

$params['host'] = mail.gmx.net;
$params['auth'] = true;
$params['username'] = 27218649;
$params['password'] = klobrille;

// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory('smtp', $params);

$status = $mail_object->send($recipients, $headers, $body);
if (PEAR::isError($status))
echo "Fehler beim E-Mail-Versand.";
?>
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

Postby Jan H. Krüger » 10. April 2005 14:44

Nun ja, dann schau dir bitte nochmal ganz genau die Beispiele an und dann deines. Du hast drei Fehler gemacht. Wenn ich sie hier lokal nachstelle, entsteht der Fehler. Reproduzierbar. Wende Beispiele bitte genau so an wie sie beispielhaft gezeigt werden.

Code: Select all
$params['host'] = mail.gmx.net;


mail.gmx.net ist ein String, also kennzeichne ihn auch als solchen.

Code: Select all
$params['username'] = 27218649;

Hier kommt deine Emailadresse rein, nicht deine GMX-Kundennummer.

Code: Select all
$params['password'] = klobrille;

Ist ebenfalls ein String.
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby 1Euro » 10. April 2005 15:09

hallo,
ich hab es mal versucht und tatsechlich es ist kein Fehler uafgetretten aber noch ist die Mail nicht angekommen :/ mal sehen.
Öhm nur zur sicherheit, ist das script so richtig?

<?php
include('Mail.php');
$recipients = 'joe@example.com';

$headers['From'] = 't.test@gmx.de';
$headers['To'] = 'mi.arndt@t-online.de';
$headers['Subject'] = 'Test message';

$body = 'Test message';

$params['host'] = "mail.gmx.net";
$params['auth'] = true;
$params['username'] = "t.test@gmx.de";
$params['password'] = "klobrille";

// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory('smtp', $params);

$status = $mail_object->send($recipients, $headers, $body);
if (PEAR::isError($status))
echo "Fehler beim E-Mail-Versand.";
?>
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

Postby 1Euro » 10. April 2005 15:15

hallo nochmal,
ich habe nochetwas herrausgefunden undzwar das mann die E-mail addi des Empfengers in die var $recipients schreiben muss (zumindest in meinem Beispiel) Aber dann frage ich mich was mann in die var $headers['To'] schreiben muss. Kann mir das jemand sagen???
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

Postby Jan H. Krüger » 10. April 2005 15:24

Sonst ist kein Fehler drin.

Die Variable $recipient enthält den oder die Empfänger. Kommagetrennt.
Willst du nur an einen Empfäger eine E-Mail, so kannst du
Code: Select all
$recipients = "email@an.empfaenger";

schreiben

Willst du hingegen an mehrere Empfänger eine E-Mail verschicken, kannst du dies folgendermaßen:
Code: Select all
$recipients = "email@an.empfaenger1, email@an.empfaenger2, email@an.empfaenger3";
uns so weiter.

Im $headers['To'] wird eine Zeichenkette eingetragen. Dies kann entweder die E-Mailadresse des Empfängers sein oder ein frei wählbarer Text.
Code: Select all
$headers['To']      = 'Eingetragene Newsletterempfänger';


Anders gesagt, $headers['To'] entspricht der Zeile "To:" einer E-Mail während $recipient im "Delivered-To:" erscheint.
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby Wiedmann » 10. April 2005 15:37

$params['username'] = 27218649;
Hier kommt deine Emailadresse rein, nicht deine GMX-Kundennummer.

Die Kundennummer ist hier durchaus korrekt und der Mailadresse vorzuziehen, da genauso in der GMX-Anleitung dokumentiert. Die Emailadresse an dieser Stelle funktioniert aber auch (noch).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Jan H. Krüger » 10. April 2005 15:46

Was allerdings einen Fehler der Klasse auslöst...
Im Umgang mit der Mailklasse sollte also durchaus mit der E-Mailadresse gearbeitet werden. Selbst wenn GMX noch etwas anderes akzeeptiert.
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby Wiedmann » 10. April 2005 15:50

Was allerdings einen Fehler der Klasse auslöst...

Auch ohne das jetzt zu testen würd ich das verneinen. Seit wann muss der Username eines Mailpostfaches eine Emailadresse sein? Und für so schlecht/unausgereift halte ich diese PEAR-Klasse eigentlich nicht...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby 1Euro » 10. April 2005 16:02

hallo,
ersteinmal danke für euro tolle Hilfeaber jetzt habe ich mir mit HTML und PHP ein E-mail Prog Script gemacht so wenn ich jetzt alles in die Felder angegeben habe kommt die Meldung: Fehler beim E-Mail-Versand. Vieleicht könnt ihr mir da nochmal helfen ich geb euch mal die beiden Scripte:

das erste heißt: "senden.html":

<HTML>
<FORM METHOD=post ACTION="senden.php">
<BR>Deine E-mail Adresse:<INPUT Type="text" Name="email" SIZE="20" MAXLENGTH="20">
<BR>Dein Passwort:<INPUT TYPE="password" Name="passwd" SIZE="20" MAXLENGTH="20">
<BR>Dein SMTPserver Host:<INPUT TYPE="text" Name="smtp" SIZE="20" MAXLENGTH="20">
<BR>Entfaenger:<INPUT TYPE="text" NAME="entfenger" SIZE="20" MAXLENGTH="20">
<BR>Betreff:<INPUT TYPE="text" NAME="betreff" SIZE="20" MAXLENGTH="20">
<BR>Text:<TEXTAREA NAME="text" ROWS="10" COLS="65" WRAP></TEXTAREA>
<BR><INPUT TYPE="submit" VALUE="senden">
</FORM>
</HTML>


das zweite heißt: "senden.php":

<?php
$email = $_POST['e-mail'];
$passwd = $_POST['passwd'];
$smtp = $_POST['smtp'];
$entfenger = $_POST['entfenger'];
$betreff = $_POST['betreff'];
$text = $_POST['text'];

include('Mail.php');
$recipients = $entfenger;

$headers['From'] = "$email";
$headers['To'] = "$entfenger";
$headers['Subject'] = "$betreff";

$body = "$text";

$params['host'] = "$smtp";
$params['auth'] = true;
$params['username'] = "$email";
$params['password'] = "$passwd";

// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory('smtp', $params);

$status = $mail_object->send($recipients, $headers, $body);
if (PEAR::isError($status))
echo "Fehler beim E-Mail-Versand.";
?>


Bitte helft mir auch bei diesem Problem :/

Vielen Dank 1Euro
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

Postby Jan H. Krüger » 10. April 2005 16:13

@Wiedmann: Tatsache bleibt aber das die Klasse einen Fehler auslöst. Wenn du es doch einmal ausprobieren könntest, vielleicht habe ich ja etwas übersehen. Egal ob die Kundennummer als String oder Zahl angegeben wird.
Denn ich stimme dir zu, an sich ist die Klasse spitze.

@1Euro:
Ich hab jetzt nur mal grob drüber geschaut, aber hast du schonmal probiert die zugewiesenen Werte im zweiten Skript mal ausgeben zu lassen nachdem die den $headers, $params und $recipient-Variablen zugewiesen wurden?
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby 1Euro » 10. April 2005 16:19

wie lasse ich die ausgeben?
Dies ist meine Welt!!!
1Euro
 
Posts: 188
Joined: 11. September 2004 17:50

PreviousNext

Return to PHP

Who is online

Users browsing this forum: No registered users and 17 guests