php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2009, 17:22  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard [Erledigt] phpmailer und Return-Path

Der Return-Path wird bei der mail()-Anweisung ja durch den fünften Parameter -f gesetzt. Wenn ich eine mail mit der nackten mail()-Anweisung sende, dann klappt das auch.

Beim phpmailer mache ich das so:

PHP-Code:
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->From     $absender;
$mail->FromName $absendername;
$mail->AddReplyTo($absender);

// So soll man den Return-Path setzen
$mail->Sender     $absender;

$mail->CharSet  =  "utf-8";

$mail->AddAddress($email);
$mail->Body $mailtext;
$mail->Send(); 
$mail->Sender = $absender; scheint falsch zu sein, denn der Return-Path wird nicht auf das Absenderpostfach gebogen. Zur Erinnerung: Bei -f$absender mit mail() funktioniert das einwandfrei.
From, FromName und ReplyTo werden hingegen richtig gesetzt.

Was mache ich falsch?


Wenn ich class.phpmailer.php anschaue, dann finde ich dort:
PHP-Code:
  /**
   * Sets the Sender email (Return-Path) of the message.  If not empty,
   * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
   * @var string
   */
  
var $Sender            '';


// und weiter unten

    
if($this->Sender == '') {
      
$result .= $this->HeaderLine('Return-Path'trim($this->From));
    } else {
      
$result .= $this->HeaderLine('Return-Path'trim($this->Sender));
    } 
Offensichtlich soll der Return-Path auf den übergebenen Absender gesetzt werden, wenn kein Sender übergeben wird. Aber auch das macht der phpmailer nicht. lasse ich die Zeile
$mail->Sender = $absender;
weg, dann habe ich das gleiche, falsche Ergebnis. Return-Path: bleibt ungesetzt.

Habe ich eine phpmailer-Einstellung vergessen?
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

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

Wenn Du keinen Debugger zur Hand hast, kannst Du es ja mal mit
PHP-Code:
if($this->Sender == '') {
    echo 
'<p>Return-Path/From: ' $this->From '</p>';
  
$result .= $this->HeaderLine('Return-Path'trim($this->From));
} else {
    echo 
'<p>Return-Path/Sender: ' $this->Sender '</p>';
  
$result .= $this->HeaderLine('Return-Path'trim($this->Sender));

versuchen.
David ist offline  
Alt 13.01.2009, 18:40  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Dankesehr. Ich hatte eher gedacht, dass ich das Dingens falsch bediene, aber nun habe ich die Klasse debugged und hab die Gurke gefunden:

Der -f Parameter funktioniert ja wie bekannt nicht bei safe_mode=on. Daher fragt phpmailer ab, ob der Server im safe mode läuft:

PHP-Code:
if ($this->Sender != '' && strlen(ini_get('safe_mode')) < 1) { 
ini_get('safe_mode') steht aber nicht, wie hier vorausgesetzt auf '', sondern auf 0, daher scheitert der zweite Teil der if-Abfrage. Ich weiß nicht, ob dieser Server sich komisch verhält, aber ich hab jetzt erstmal das Problem geflickt.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 13.01.2009, 18:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das wäre einen Tipp an die phpmailer Macher wert!
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 13.01.2009, 18:49  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

PHPMailer ist sicherlich ein tolles Paket. Aber hast Du Dir vielleicht mal Swift Mailer - A free feature-rich PHP Mailer angesehen?
David ist offline  
Alt 13.01.2009, 18:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Welcher der beiden kann eigentlich Multimailing? So Newsletterartig mit Stack und evtl. Cronjobs?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 13.01.2009, 18:57  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Letztendlich baut phpmailer "nur" auf Zuruf die richtigen Header und reicht das Ganze dann weiter an einen SMTP-Server, an Sendmail, oder an mail(). Die Sendelogik muss man schon selbst drumrum schreiben.

Meine eigenen selbstfrabrizierten Header unterscheiden sich nur in einer einzigen Zeile von den phpmailer-Headern, nämlich um diese:
X-Mailer: PHPMailer
aber als ich mit UTF-8 angefangen habe, hab ich mich überzeugen lassen, die Arbeit zu vereinfachen

Swiftmailer schau ich mir auch mal an, aber ich glaube nicht wirklich, dass der andere Ergebnisse produziert.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 13.01.2009, 18:59  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Cronjobs weiß ich jetzt nicht - als Bestandteil des Mailers selbst?

Aber für Multimailing hat SwiftMailer ein paar Sachen.
Zum Beispiel Sending a batch email or newsletter [SwiftMailer Docs] oder Swift Message Decorator Plugin (For Customized Messages) [SwiftMailer Docs]
David ist offline  
Alt 13.01.2009, 19:04  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Zitat:
$recipients->addTo("recipient1@address.tld", "Recipient 1");
$recipients->addTo("recipient2@address.tld", "Another recipient");

$swift->batchSend($message, $recipients, new Swift_Address("company@domain.tld", "Our Company"));
Solch ein Feature hat phpmailer auch, man baut einfach mehrere Zeilen
$mail->AddAddress($email1);
$mail->AddAddress($email2);

Das ist aber für Newsletter nur dann zu gebrauchen, wenn jeder Teilnehmer exakt den gleichen Text bekommen soll. Wenn man personalisieren will, dann kann man das abhaken.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 13.01.2009, 19:29  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Genau dafür ist der Decorator bei SwiftMailer gedacht
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
Probleme mit phpmailer - HTML-Format & PDF-Anhang Eremit PHP Tipps 2009 13 09.01.2009 14:17
PHPmailer: Problem Bilder extern / absolut verlinken, nicht als inline attachment brtl PHP-Fortgeschrittene 2 16.09.2008 20:59
PHPMailer Problem ochsi PHP Tipps 2008 7 08.07.2008 10:34
Prototype Ajax Array Datenmüll notyyy HTML, Usability und Barrierefreiheit 2 08.04.2008 10:57
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
phpfriend.de Server snatch-ic Off-Topic Diskussionen 299 30.09.2006 10:56
phpmailer & Autenfizierung von Postausgansserver Klaus PHP Tipps 2006 3 25.09.2006 14:57
phpmailer + 2 verschiedene E-Mails Sebja PHP-Fortgeschrittene 3 25.06.2006 21:18
Wurde return verwendet? imported_Lumio PHP Tipps 2006 8 24.03.2006 12:32
phpmailer: Bei smtpf html-Formatierung weg... PHP Tipps 2006 31 11.02.2006 15:43
Kann Bilder nicht Uploaden / Cannot upload my Images :( PHP Tipps 2005-2 14 25.09.2005 17:47
[Erledigt] Datenbank nicht erreichbar PHP Tipps 2005-2 27 19.08.2005 12:20
phpmailer: Problem mit Pfad PHP Tipps 2005 4 10.02.2005 15:13
Funktion schreiben um das Return einer Website einzufangen PHP Tipps 2004-2 40 30.12.2004 21:18
Veränderung des Include Path wird nicht angenommen PHP Tipps 2004 3 06.07.2004 12:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php return-path, phpmailer return-path, php return path, phpmailer return path, return path php, return-path php, phpmailer returnpath, phpmailer return, phpmailer return-path setzen, phpmailer return-path ändern, return-path phpmailer, php return-path:, return path phpmailer, http://www.php.de/php-einsteiger/50657-erledigt-phpmailer-und-return-path.html, php returnpath, php return path setzen, return-path: php, return-path, php mail return-path setzen, phpmailer replyto

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