Seite 8 von 13
Verfasst: 28.01.2004 16:27
von PhilippK
Gut, dann versuchen wir es weiter. Die Änderungen von oben kannst du übrigens wieder rückgängig machen. In der emailer.php bitte suchen:
Code: Alles auswählen
$to = ($to == '') ? (($board_config['sendmail_fix']) ? ' ' : 'Undisclosed-recipients:;') : $to;
$result = @mail($to, $this->subject, preg_replace("#(?<!\r)\n#s", "\n", $this->msg), $this->extra_headers);
und danach folgende Zeile einfügen:
Code: Alles auswählen
@mail('you@domain.de', 'phpBB-DEBUG: ' . $this->subject, $this->extra_headers);
(
you@domain.de musst du durch deine E-Mail-Adresse ersetzen)
Du erhälst nun bei jeder Mail, die vom Board verschickt wird, eine Mail mit den Headers der Mail. Diese benötige ich einmal

(Hinweis: in den Headers sind E-Mail-Adressen im Klartext angegeben. Wenn du die nicht veröffentlichen willst, kannst du mir auch gerne eine PN schicken)
Gruß, Philipp
Verfasst: 01.02.2004 16:10
von Nico Haase
was ich verrückt finde: ich habe ein forum übernommen und in keiner einzigen zeile was verändert, abgesehen von den db-zugangsdaten. und jetzt kommen, anders als vorher!, auch hier zwei benachrichtigungen. ich werd noch verrückt...
Verfasst: 01.02.2004 16:14
von Nico Haase
nachtrag: die header der versendeten mails gleichen sich minutiös:
Code: Alles auswählen
Return-Path: <nobody[bei]atreju.bw-networx.net>
X-Flags: 0000
Delivered-To: GMX delivery to nico.haase[bei]gmx.de
Received: (qmail 7887 invoked by uid 65534); 1 Feb 2004 12:30:37 -0000
Received: from atreju.bw-networx.net (EHLO atreju.bw-networx.net) (217.146.142.72)
by mx0.gmx.net (mx035) with SMTP; 01 Feb 2004 13:30:37 +0100
Received: (from nobody[bei]localhost)
by atreju.bw-networx.net (8.11.6/8.11.6) id i11CUdX00560;
Sun, 1 Feb 2004 13:30:39 +0100
Subject: Benachrichtigen bei Antworten - GemeinschaftsForum mit la und ts!
Reply-to: <dsforum[bei]buchtips.net>
From: <dsforum[bei]buchtips.net>
Message-ID: <2919bc325f862a5ba6d9ca9fc1549ed5[bei]www.buchtips.net>
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
Date: Sun, 1 Feb 2004 13:30:38 +0100
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: PHP
X-MimeOLE: Produced By phpBB2
To: nico.haase[bei]gmx.de
Received=20040201133825
Lines: 12
und
Code: Alles auswählen
Return-Path: <nobody[bei]atreju.bw-networx.net>
X-Flags: 0000
Delivered-To: GMX delivery to nico.haase[bei]gmx.de
Received: (qmail 8798 invoked by uid 65534); 1 Feb 2004 12:51:45 -0000
Received: from atreju.bw-networx.net (EHLO atreju.bw-networx.net) (217.146.142.72)
by mx0.gmx.net (mx004) with SMTP; 01 Feb 2004 13:51:45 +0100
Received: (from nobody[bei]localhost)
by atreju.bw-networx.net (8.11.6/8.11.6) id i11CUcK00557;
Sun, 1 Feb 2004 13:30:38 +0100
To: Undisclosed-recipients:;
Subject: Benachrichtigen bei Antworten - GemeinschaftsForum mit la und ts!
Reply-to: <dsforum[bei]buchtips.net>
From: <dsforum[bei]buchtips.net>
Message-ID: <2919bc325f862a5ba6d9ca9fc1549ed5[bei]www.buchtips.net>
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
Date: Sun, 1 Feb 2004 13:30:38 +0100
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: PHP
X-MimeOLE: Produced By phpBB2
Lines: 12
die einzige änderung ist im to-tag versteckt, welches unterschiedlich sitzt. vielleicht liegt da der fehler...
Verfasst: 01.02.2004 16:27
von PhilippK
Deshlab würde ich ja gerne mal die unverarbeiteten Headers sehen
Gruß, Philipp
Verfasst: 01.02.2004 16:59
von Nico Haase
gleich kommen sie. ein freund hat schon zwei einträge gemacht, durch einen fehler in der emailer.php (hättest du die zeile im code-beispiel nicht mit dem semikolon abschließen können???) flattern jedoch hunderte von fehlermeldungen per mail bei mir ein, die alles verstopfen. mein hamster

zwar schon, aber auch

ist bei ihm gerade sehr stark im mode

Verfasst: 01.02.2004 17:44
von Nico Haase
ich denke, es ist sinnlos, jetzt sagen zu müssen, dass auf einmal nur noch eine benachrichtigung kommt....
Verfasst: 01.02.2004 17:57
von Nico Haase
warum auch immer: auch in meinem zweiten board, was ich oben als komplett übernommen und trotzdem doppelt benachrichtigend erwähnte, kommt nur noch eine...
Verfasst: 01.02.2004 18:30
von Nico Haase
ich habe eine mögliche problemquelle gefunden. die versendende stelle im board lautet folgendermaßen:
Code: Alles auswählen
$result = @mail($to, $this->subject, preg_replace("#(?<!\r)\n#s", "\n", $this->msg), $this->extra_headers);
// mail('nico.haase@gmx.de', 'phpBB-DEBUG: ' . $this->subject, $this->extra_headers);
// mail('forum@buchtips.net', 'phpBB-DEBUG: ' . $this->subject, $this->extra_headers);
if (!$result && !$board_config['sendmail_fix'] && $empty_to_header)
{
$to = ' ';
$sql = "UPDATE " . CONFIG_TABLE . "
SET config_value = '1'
WHERE config_name = 'sendmail_fix'";
if (!$db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Unable to update config table', '', __LINE__, __FILE__, $sql);
}
$board_config['sendmail_fix'] = 1;
$result = @mail($to, $this->subject, preg_replace("#(?<!\r)\n#s", "\n", $this->msg), $this->extra_headers);
}
die mail kann also unter bestimmten umständen doppelt geschickt werden. schätzungsweise liegt das problem darin, dass das to-feld durch die funktion $klasse->to() leer bleibt, durch $klasse->bcc() gefüllt wird, dann wird die mail erstmal regulär gesendet, aus irgendeinem grund aber trotzdem ein false für $result übermittelt. die bedingungen für eine erneute sendung treffen zu, weil $result
trotz gesendeter mail false trägt, $to leer ist (siehe $empty_to_header) und sendmail_fix deaktivert ist (ist das die smtp-bedingung??). demnach kann der fehler nur auftreten, wenn mehr als zwei leute ein thema abonniert haben...
lösung wäre: die benachrichtigung wird nicht mehr per bcc in einem schlag verschickt, sondern direkt per to-feld einzeln.
Verfasst: 01.02.2004 18:58
von Nico Haase
längst veloren geglaubt sind nach fast ner stunde der zweite rutsch an benachrichtigungen eingetroffen. sie kommen also doch doppelt. aber die debug-meldung kam nur einmal per mail, und zwar folgendermaßen gefüllt:
Code: Alles auswählen
Reply-to: dsforum[bei]buchtips.net
From: dsforum[bei]buchtips.net
Return-Path: dsforum[bei]buchtips.net
Message-ID: <f3a9ece32e446f21b3f08c1d088f58ca[bei]www.buchtips.net>
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
Date: Sun, 1 Feb 2004 18:07:31 +0100
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: PHP
X-MimeOLE: Produced By phpBB2
Bcc: nico.haase[bei]gmx.de
Verfasst: 15.02.2004 08:46
von Nico Haase
mein letzter verdacht erhärtete sich: trotz versand
vor dem abfragepart für fehler, in dem dann ersatzweise verschickt werden soll, wird doppelt verschickt...
//edit: der fehler steckt wohl direkt im server. die rückmeldung von mail() in emailer.php ist false, die mail wird aber verschickt. problemlösung wäre der einzelversand der benachrichtigungen, da setz ich mich gleich mal ran...
//edit2: aus den usernotes von
http://de.php.net/manual/de/function.mail.php2) If you are trying to check whether or not your mail has been sent using something similar to this:
$result = mail(etc);
and the $result is consistently coming back as FALSE even though the mail was indeed sent, then it is likely that your mail agent is returning an error code after sending mail. This is likely due to a misconfiguration in the agent. I use sendmail, and it was returning an error about not finding localip.db file every time mail was sent, and this was confusing mail(). It kept returning FALSE even though the mail was sent. I corrected the sendmail configuration and then mail() would return TRUE correctly when mail was sent.