php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.04.2009, 22:08  
Benutzer
 
Registriert seit: 24.06.2008
Beiträge: 44
Inchie befindet sich auf einem aufstrebenden Ast
Standard Unterschied von php mail()-Funktion zu PEAR $mail->send()

Hallo,

ich habe die Pear-Installation auf einem "Shared Webhost" durchgeführt (go pear). Das hat auch alles super funktioniert. Allerdings hab ich jetzt ein kleines Verständnisproblem. Ich kann mit folgendem Skript E-Mails versenden (Pear-Klasse Mail):

PHP-Code:
require_once ('Mail.php');
require_once (
'Mail/mime.php');

$recipients 'xyz@gmx.de';

$headers['From']    = 'xyz@gmx.de';
$headers['To']      = 'yxv@gmx.de';
$headers['Subject'] = 'Test message';

$body 'Test message';

$params['sendmail_path'] = '/usr/sbin/sendmail -t -i';

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

$mail_object->send($recipients$headers$body); 
Dabei kommt die E-Mail wie gewünscht an. Wenn ich nun aber die Funktion mail() mit der Pear-Klasse mail_mime versenden will, erhalte ich keine E-Mail im Posteingang. Anbei der Code:

PHP-Code:
include ('Mail.php');
include (
'Mail/mime.php');

$text 'Text version of email';
$html '<html><body>HTML version of email</body></html>';
$file '/dateien/test.csv';
$crlf "\n";
$hdrs = array(
              
'From'    => 'xyz@gmx.de',
              
'Subject' => 'Test mime message'
              
);

$mime = new Mail_mime($crlf);

$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file'text/plain');

//do not ever try to call these lines in reverse order
$body $mime->get();
$hdrs $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('xyz@gmx.de'$hdrs$body); 
Jetzt zu meiner eigentlichen Frage: Gibt es einen Unterschied zwischen der php mail()-Funktion und der mail-Funktion die unter PEAR verwendet wird?
Meines erachtens ist doch PEAR auch alles php-Code?? Folgende mail()-Funktion unter php funktioniert:

PHP-Code:
  // E-Mail Adresse des Empfängers
  
$empfaenger "xyz@gmx.de";
  
  
// Die Betreff (Subject) Zeile der E-Mail
  
$betreff "Hallo, ich bin es ...";
  
  
// Der eigentliche Text (Body) der Nachricht
  
$text "Hallo Test,\n\nIch gruesse Dich. Das ist eine E-Mail,
  die ich mit PHP verschickt habe..."
;
  
  
$header 'From: xyz@gmx.de' "\r\n" .
    
'Reply-To: xyz@gmx.de' "\r\n" .
    
'X-Mailer: PHP/' phpversion();
  
  
// Mail verschicken
  
mail ($empfaenger$betreff$text$header); 
Unter meinem alten Mail-Provider funktioniert auch Mail_mime mit dem gleichen Code Oje. Vielleicht kann mir ja jemand helfen.......

Für Hilfe wäre ich sehr dankbar. Hab schon 5 Stunden im Netz gesucht....

Beste Grüße,

Timo
Inchie ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.04.2009, 22:22  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zu Deiner eigentlichen Frage: Keine Ahnung

Aber ich würde SwiftMailer mit SMTP_Transport verwenden. Schon allein, weil Du (etwas) verlässlichere Fehlermeldungen erhalten kannst.
David ist offline  
Alt 10.04.2009, 22:48  
Benutzer
 
Registriert seit: 24.06.2008
Beiträge: 44
Inchie befindet sich auf einem aufstrebenden Ast
Standard

Hallo David,

leider habe ich viele Skripte die auf PEAR zurückgreifen. Eine Alternative ist wünschenswert, aber nicht so schnell zu realisieren . Aber danke!

timo
Inchie ist offline  
Alt 11.04.2009, 00:17  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ist den das mail-Objekt selbst der Meinung, dass alles glatt gegangen ist?
PHP-Code:
echo '<pre>Debug: hdrs='htmlentities(var_export($hdrs), true), "</pre>\n";
echo 
'<pre>Debug: body='htmlentities(var_export($body), true), "</pre>\n";

$result $mail->send('xyz@gmx.de'$hdrs$body);
if (
PEAR::isError(result)) {
  echo 
'Error: '$send->getMessage();

David ist offline  
Alt 11.04.2009, 10:13  
Benutzer
 
Registriert seit: 24.06.2008
Beiträge: 44
Inchie befindet sich auf einem aufstrebenden Ast
Standard

Ja. Es wird zumindest kein Fehler ausgegeben.
Inchie ist offline  
Alt 11.04.2009, 12:20  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Und hast Du Dir insbesondere die Ausgabe von
Zitat:
echo '<pre>Debug: hdrs=', htmlentities(var_export($hdrs), true), "</pre>\n";
genau angesehen?
David ist offline  
Alt 11.04.2009, 13:36  
Erfahrener Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 115
PHP-Kenntnisse:
Fortgeschritten
fritz_07 befindet sich auf einem aufstrebenden Ast
Standard

Äh, in deinem Code ist ein Denkfehler, David.

Es müsste eigentlich
Code:
echo '<pre>Debug: hdrs=', htmlentities(var_export($hdrs, true), true), "</pre>\n";
heißen.
fritz_07 ist offline  
Alt 11.04.2009, 13:39  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Tippfehler, ja.
PHP-Code:
echo '<pre>Debug: body='htmlentities(var_export($bodytrue)), "</pre>\n"
David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mail Funktion PHP Tipps 2005 4 14.04.2005 13:21
Mail Funktion mit Variablen aus einem Formular PHP Tipps 2005 2 17.03.2005 14:21
... on a non-object ... in eigener funktion (pear) PHP Tipps 2005 5 25.02.2005 09:23
mail() Funktion - Liefert TRUE jedoch .... PHP Tipps 2005 21 23.02.2005 11:54
pear mime mail >> attachment funktioniert nicht PHP Tipps 2005 4 28.01.2005 16:23
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] mail() funktion PHP Tipps 2004-2 4 08.12.2004 11:43
[Erledigt] Text fett markieren in mail funktion PHP Tipps 2004-2 2 12.11.2004 17:08
mail funktion - unespeted end? was das für 'n error? anakadai PHP Tipps 2004-2 3 09.11.2004 01:10
[Erledigt] mail() Funktion funktioniert nach ServerBackup nicht mehr PHP-Fortgeschrittene 5 29.10.2004 21:29
mail funktion funzt net es kommt ein fehler phpfortgeschrittener PHP Tipps 2004 4 29.08.2004 01:07
mail funktion PHP Tipps 2004 9 11.08.2004 13:52
[Erledigt] Funktion MAIL() funkt nicht PHP Tipps 2004 16 11.07.2004 17:25
Problem mit mail() - Funktion PHP Tipps 2004 2 06.07.2004 18:21
email schreiben mit der Funktion mail() PHP Tipps 2004 4 01.07.2004 13:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
email mit pear, pear mail.php html versenden, pear mail send, http://www.php.de/php-einsteiger/53999-unterschied-von-php-mail-funktion-zu-pear-mail-send.html, php pear mail, pear mail php, php mail send, pear mail mehrere empfänger, mail_mime mehrere empfänger, pear mail x-mailer, pear mail mehrere, php pear mail versenden, pear mime_mail funktionen, peer mail_mime gmx problem, php$mail_object =& mail::factory(\'sendmail\', $params);, php email versenden pear mail_mime, klasse e mail pear, pear mail to mehrere, pear mail web.de, php mails verschicken header

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum