Forum : eXV2 InstallationTitel : Mails mit "-f" versenden - wie?© 2004-2012 www.exv2.de http://www.exv2.de
URL dieser Diskussion
http://www.exv2.de/modules/newbb_plus/viewtopic.php?topic_id=4135&forum=3
|
BigGuy :
| 15.08.2008 23:33 |
Hallo zusammen,
ich habe folgendes Problem: Wenn exV2 eine Mail versendet (z.B. Begrüßungsmail nach Registrierung eines neuen Users oder z.B. Newsletter), dann wird zwar der jeweils korrekte Absender gesetzt, die Mail wird aber nicht mit Parameter "-f" versandt.
Folglich steht "außen" auf dem "Umschlag" der Mail an den User soetwas wie wwwrun@meinedomain.tld - was fatal ist, wenn die Mailadresse des Empfängers falsch ist.
In diesem Fall bounced die Mail nämlich an den Server-Admin (mich) zurück und nicht an den entsprechenden Ansprechpartner, der eigentlich der Absender ist (z.B. webmaster@mitbenutzers-domain.tld). Das ist natürlich etwas nervig, wenn man ständig Bounces von Websites im Postkasten hat, mit denen man eigentlich nicht viel zu tun hat (außer dass man an diese etwas Platz auf dem Server "verborgt" hat).
Ich frage mich also: Wie kann ich erreichen, dass die Mails zukünftig von exV2 mit forciertem Absender (-f) versandt werden?
Beispiel eines solchen Bounces:
Return-Path: <> X-Original-To: wwwrun@meinedomain.de Delivered-To: wwwrun@meinedomain.de Received: by server.meinedomain.de (Postfix) id 97DE01194152; Fri, 15 Aug 2008 03:54:15 +0200 (CEST) Date: Fri, 15 Aug 2008 03:54:15 +0200 (CEST) From: MAILER-DAEMON@meinedomain.de (Mail Delivery System) Subject: Undelivered Mail Returned to Sender To: wwwrun@meinedomain.de Auto-Submitted: auto-replied MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="4671D1194151.1218765255/server.meinedomain.de" Message-Id: <20080815015415.97DE01194152@server.meinedomain.de> X-AntiVirus: checked (incoming) by AntiVir MailGuard (Version: 8.0.0.42; AVE: 8.1.1.19; VDF: 7.0.6.16)
This is the mail system at host server.meinedomain.de. I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below. [...]
<falschername@hotmail.com>: host mx3.hotmail.com[65.54.244.200] said: 550 Requested action not taken: mailbox unavailable (in reply to RCPT TO command)
Received: by server.meinedomain.de (Postfix, from userid XXX) id 4671D1194151; Fri, 15 Aug 2008 03:54:13 +0200 (CEST) To: falschername@hotmail.com Subject: Registrierung [Newsletterprogramm] www.befreundete-domain.de From: Name Freund <redaktion@befreundete-domain.de> X-Mailer: PHP/5.2.6 Message-Id: <20080815015414.4671D1194151@server.meinedomain.de> Date: Fri, 15 Aug 2008 03:54:14 +0200 (CEST)
Vorab schon mal vielen Dank für die Hilfe! |
|
|
bama :
| 16.08.2008 13:59 |
Hi,
wenn ich dich richtig verstanden habe, hast du auf deinem Server mehrere eXV² Installationen und als Return soll $extheader = "-f".$xoopsConfig['adminmail']; verwendet werden.
kannst du mal beiliegendes Script testen: /class/xoopsmailer.php
bitte aber vorher das alte Script umbenennen, zur Sicherheit  |
|
|
BigGuy :
| 16.08.2008 18:54 |
Hallo Hans,
zunächst vielen Dank für den scnellen Hilfe-Versuch. Leider funktioniert die Mail-Funktion mit dem neuen Script garnicht, d.h. Mails werden NICHT versandt.
Primär geht es mir auch darum, den Return-Path auf den Absender zu setzen, der ja nicht zwangsläufig der Administrator sein muss:
Bisher: Return-Path: <wwwrun@meine-domain.de> [...] From:webmaster@andere-domain.de
Und so sollte es sein: Return-Path: <webmaster@andere-domain.de > [...] From:webmaster@andere-domain.de
Ich denke, dein Ansatz ging insgesamt schon in die richtige Richtung, nur funktioniert hat er halt leider nicht.
Hintergrund ist, dass ich auf meinem Server die Website eines Vereins liegen habe, der sich um seine nicht zustellbaren Mails selber kümmern soll... 
Bei mir läuft PHP 5.2.6 mit Safemode OFF, so dass der 5. Parameter mit -f gesetzt werden kann. Für eigene Scripte nutze ich hierfür folgende Funktion, die im Falle eines Falles auch flexibel auf die Umstellung auf Safemode ON regieren würde:
function mailSafe($par1, $par2, $par3, $par4, $par5) { if(ini_get('safe_mode')){ mail($par1, $par2, $par3, $par4); }else{ $envelope = '-f'.$par5 ; mail($par1, $par2, $par3, $par4, $envelope); } }
Der Versand der Mails erfolgt dann entsprechend durch den Aufruf von mailSafe($EMPFÄNGER, $BETREFF, $NACHRICHT, $HEADER, $EMAIL DES ABSENDERS FÜR ENVELOPE)
Vielleicht könnte eXV2 e-Mails zukünftig ebenfalls generell auf diese Weise behandeln?
Viele Grüße
Alex |
|
|
bama :
| 16.08.2008 21:39 |
Hi Alex, ich habe das geändert und bei mir mit und ohne safe_mod getestet, auf beiden Systemen wurden Mails versendet bei safe_mode: On wurde der Mailheader richtig gefüllt |
|
|
BigGuy :
| 17.08.2008 22:00 |
Hallo Hans,
mit dem Script hat es nicht gleich auf Anhieb geklappt, aber nachdem ich noch folgende Änderung vorgenommen hatte, tut's nun genau das, was es soll:
Aus
if(!mail($to, $subject, $body, $headers, $extheader)){
musste noch
if(!mail($to, $subject, $body, $headers, $envelope)){
werden. Nun wird bei safe_mode=off auch der richtige Return-Path gesetzt. Bei safe_mode=on wird allerdings weiterhin wwwrun als Return-Path gesetzt, was aber normal ist.
Jetzt gibt es aber eine zweite Baustelle:
Für das exV²-System (Benutzer-Registrierung, Passwort-Anforderungen, etc.) wird der Return-Path ja nun richtig gesetzt. Beim Newsletter-Modul hingegen werden Bestellbestätigungen und auch der Newsletter selbst weiterhin mit wwwrun@servername.tld als Return-Path verschickt.
Natürlich habe ich die Function sendMail in /modules/newsletter/class/newsletter_mailer.php entsprechend der in /class/xoopsmailer.php angepasst, aber ohne jede Auswirkung auf Bestätungsmails oder den Newsletterversand.
HILFÄÄÄÄÄÄÄÄÄÄ! 
Viele Grüße
Alex |
|
|
bama :
| 17.08.2008 23:28 |
das habe ich noch übersehen, danke
muss ich mir die Tage ansehen, bin gerade überm Forum, ich melde mich |
|
|
|