Absender-E-Mail-Adresse wird nicht übernommen

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Benutzeravatar
mirko
Beiträge: 22869
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von mirko »

Ist eindeutige ein Konfigurationsproblem auf deinem Server. Das PHP übergibt nicht an sendmail, das kommt drauf an ob es so in der php.ini definiert ist.
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

Zum weiteren Eingrenzen habe ich eine frische Testinstallation auf einem neuen vhost vorgenommen: Auch hier war der Absender bei allen Mails außer einem E-Mailing der Apache User www-run statt der eingestellten Absenderkennung. Mit etwas Rumspielen fiel mir dann auf, dass auch beim E-Mailing die Absenderkennung nicht gesetzt ist, wenn man keine Return-Path-Adresse angibt. K.A. wo da der Zusammenhang ist...

Nebenbei bin ich auf einen für mich funktionierenden Workaround gestoßen: In der Standardversandvariante kann man zwischen php-mail und sendmail wählen. Bei der Standardeinstellung php-mail wird die Absenderkennung nicht gesetzt, bei sendmail hingegen schon. Dabei übergibt php die Mails doch auch einfach nur an sendmail, oder? Wie auch immer: Mit der Einstellung ist nun in allen Fällen die richtige Adresse gesetzt.
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

mirko hat geschrieben: Wieso sind in der Ausgabe der Werte [To], [From] und [Message-Id] leer? Da muss was drin stehen, das kann nicht anders sein, sonst könnte er nicht mal ne E-Mail versenden, weil es kein To gibt.
Das müssten Sie besser wissen als ich. Das wurde so 1:1 im Browser ausgespuckt. Ich habe nur die von Ihnen angegebenen Codestellen angepasst.
Benutzeravatar
mirko
Beiträge: 22869
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von mirko »

mit Updates hat das hier nichts zu tun, das muss was anderes sein.

Wieso sind in der Ausgabe der Werte [To], [From] und [Message-Id] leer? Da muss was drin stehen, das kann nicht anders sein, sonst könnte er nicht mal ne E-Mail versenden, weil es kein To gibt.
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

mirko hat geschrieben:Es wurde aber auch NICHTS an den Scripten manuell geändert, auch nicht im PEAR-Verzeichnis?
Nö, wozu auch? Das Tool ist doch bislang gut, so wie es ist. :)
mirko hat geschrieben: So einen Fehler kann es doch gar nicht geben, bei allen geht es,
Ich würde mal eher vermuten, dass es die meisten User gar nicht merken, weil sie entweder seitens sendmail.conf eine gültige E-Mail-Adresse setzten lassen oder komplett ignorieren was im SMTP-Envelope steht. Wir blocken hingegen explizit alle nicht legitimierten Absender, und dazu gehört nunmal aus Sicherheitsgründen der Apache/php-User.
mirko hat geschrieben: gestern habe ich das auch extra nochmals getestet, das ist immer korrekt.
Vielleicht liegt es aber auch an den vielen Updatezyklen (insgesamt ~10 seit 4.30?), die wir mittlerweile mitgemacht haben. Vielleicht tritt es nur bei Neuinstallationen nicht auf. Das Tool läuft bei uns ja schon ne Weile...
mirko hat geschrieben: dann noch ne Stufe tiefer:
mail.php
vor Zeile 375 angeben
print_r($_jjitL);
Zeile 379 angeben
print "<br><br>";print_r($_jjitL);
=> das ist um auszuschließen, dass in der PHP Funktion preg_replace() ein Fehler ist
Zeile 574
print "<br><br>Send:<br>"; print_r($_J800f);
Ausgabe beim Versand des Bestätigungslinks:
Array ( [Subject] => Bestätigung Versand einer E-Mail an Verteilerliste: Test [To] => [From] => [Date] => Fri, 24 Jul 2015 13:35:49 +0200 [Message-Id] => )

Array ( [Subject] => Bestätigung Versand einer E-Mail an Verteilerliste: Test [To] => [From] => [Date] => Fri, 24 Jul 2015 13:35:49 +0200 [Message-Id] => )

Send:
Array ( [Subject] => =?utf-8?B?QmVzdMOkdGlndW5nIFZlcnNhbmQgZWluZXIgRS1NYWlsIGFuIFZl?= =?utf-8?B?cnRlaWxlcmxpc3RlOiBOZXR6d2Vya3BhcnRuZXI=?= [To] => [From] => [Date] => Fri, 24 Jul 2015 13:35:49 +0200 [Message-Id] => [Content-Transfer-Encoding] => quoted-printable [Content-Type] => text/plain; charset="utf-8" )
Benutzeravatar
mirko
Beiträge: 22869
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von mirko »

Es wurde aber auch NICHTS an den Scripten manuell geändert, auch nicht im PEAR-Verzeichnis? So einen Fehler kann es doch gar nicht geben, bei allen geht es, gestern habe ich das auch extra nochmals getestet, das ist immer korrekt.

dann noch ne Stufe tiefer:

mail.php

vor Zeile 375 angeben

print_r($_jjitL);

Zeile 379 angeben
print "<br><br>";print_r($_jjitL);

=> das ist um auszuschließen, dass in der PHP Funktion preg_replace() ein Fehler ist

Zeile 574

print "<br><br>Send:<br>"; print_r($_J800f);
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

mirko hat geschrieben:Der automatische Aufruf des CronJob-Scripts muss man erst mal ausschalten oder das Scripts crons.pp in z.B. crons1.php umbenennen und dann von Hand das Script mit Parameter ?language=de aufrufen, damit man überhaupt was im Browser sieht bzw. es nicht zu ungewollten Ausgaben beim Aufruf per CronJob kommt.

Parameter -f nicht in der Versandvariante angeben!

Und beachten für den Admin-Nutzer muss eine E-Mail-Adresse hinterlegt sein, ist diese leer z.B. weil in der users-Datenbank diese manuell entfernt wurde, dann ist der Absender natürlich leer!

distribliststools.inc.php im Texteditor öffnen

Zeile 206

print $From." an -> ".$To;

angeben und schauen ob beim erneuten Versand des Bestätigungslinks $From und $To korrekt sind.
Alle Punkte beachtet. Ausgabe beim Aufruf von news.domains.de/crons_test.php?language=de:
"CurrentCronJobScriptLevel: 17
webmaster @ domain.de an -> recipient @ domain.deDone."

Es wurde also die Absenderkennung des "admin"-Users eingetragen, die Mail wurde aber nicht zugestellt.
mirko hat geschrieben: Ist From leer browsedistriblists_entries.php im Texteditor öffnen

nach Zeile 133 neue Zeile und angeben print "Admin-E-Mail-Adresse: ".$_I6fQj;

Zeile 136 angeben print "From wird sein: ".$_I6fQj;
Ausgabe beim erneutem Versand des Bestätigungslinks:
"Admin-E-Mail-Adresse: webmaster @ domain.deFrom wird sein: webmaster @ domain.de"

ABER: Offenbar kommt die Absenderadresse aber nicht bei sendmail an, denn Auszug mail.log:
Jul 24 09:53:19 web postfix/pickup[22076]: 265EA21E0B7E: uid=33 from=<www-data>
Jul 24 09:53:19 web postfix/cleanup[27937]: 265EA21E0B7E: message-id=<cee0f4537598fbda25e94cb01af018c1 @ web.domain.de>
Jul 24 09:53:19 web postfix/qmgr[16930]: 265EA21E0B7E: from=<www-data @ domain.de>, size=905, nrcpt=1 (queue active)
Jul 24 09:53:19 web postfix/smtp[27939]: 265EA21E0B7E: to=<recipient @ domain.de>, relay=none, delay=0.49, delays=0.49/0/0/0, dsn=5.4.6

Somit wurde die Mail aufgrund nicht gesetzter From-Adresse verworfen.

Wie können wir Ihnen bei der Eingrenzung des Fehlers weiterhelfen?

PS: Gerade fiel auf, dass auch die Status-Reports von dem Problem betroffen sind. Offenbar gehen nur die Testmails und E-Mailings korrekt raus...
Benutzeravatar
mirko
Beiträge: 22869
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von mirko »

Der automatische Aufruf des CronJob-Scripts muss man erst mal ausschalten oder das Scripts crons.pp in z.B. crons1.php umbenennen und dann von Hand das Script mit Parameter ?language=de aufrufen, damit man überhaupt was im Browser sieht bzw. es nicht zu ungewollten Ausgaben beim Aufruf per CronJob kommt.

Parameter -f nicht in der Versandvariante angeben!

Und beachten für den Admin-Nutzer muss eine E-Mail-Adresse hinterlegt sein, ist diese leer z.B. weil in der users-Datenbank diese manuell entfernt wurde, dann ist der Absender natürlich leer!


distribliststools.inc.php im Texteditor öffnen

Zeile 206

print $From." an -> ".$To;

angeben und schauen ob beim erneuten Versand des Bestätigungslinks $From und $To korrekt sind.


Ist From leer browsedistriblists_entries.php im Texteditor öffnen

nach Zeile 133 neue Zeile und angeben print "Admin-E-Mail-Adresse: ".$_I6fQj;

Zeile 136 angeben print "From wird sein: ".$_I6fQj;
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

mirko hat geschrieben:dann liegt es an der E-Mail, die an den Verteiler geschickt wurde, konnte er die Absender-E-Mail-Adresse wohl nicht auslesen
Das Problem tritt mit verschiedenen Mails von unterschiedlichen Absender auf.
mirko hat geschrieben:oder ein Datenbankfehler, es wurde geupdatet aber upgrade.php nicht ausgeführt.
upgrade.php wurde nach jedem Update ausgeführt.
mirko hat geschrieben:Auf die aktuelle Version upgraden, falls nicht bereits geschehen,
Wir nutzen bereits die aktuelle 5.70.0.01200
mirko hat geschrieben:dann kann man nochmals in die cron_distriblists.inc.php ein paar echos einfügen.
An welches Stelle soll ich was ausgeben?
Benutzeravatar
mirko
Beiträge: 22869
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von mirko »

dann liegt es an der E-Mail, die an den Verteiler geschickt wurde, konnte er die Absender-E-Mail-Adresse wohl nicht auslesen oder ein Datenbankfehler, es wurde geupdatet aber upgrade.php nicht ausgeführt. Auf die aktuelle Version upgraden, falls nicht bereits geschehen, dann kann man nochmals in die cron_distriblists.inc.php ein paar echos einfügen.
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

mirko hat geschrieben:Bei der Verteilerliste muss er das auch machen, aus dem Grund ein echo z.B. VOR Zeile 134 setzen und die Angaben für $recipients, $subject, $text_headers ausgeben lassen. Den Bestätigungslink nochmals versenden lassen, so dass man die Ausgabe im Browser sieht. Wichtig ist halt das die from: Angabe in $text_headers korrekt übergeben wird. Ist das der Fall, dann nimmt der Server die Parameter nicht an, wenn nicht, hätte ich ein Fehler gemacht, glaub ich aber nicht, würde dann viele andere auch betreffen.
Ausgabe von

Code: Alles auswählen

echo $recipients, $subject, $body, $text_headers
in Zeile 134:
empfaenger @ domain.de=?utf-8?B?QmVzdMOkdGlndW5nIFZlcnNhbmQgZWluZXIgRS1NYWlsIGFuIFZl?= =?utf-8?B?cnRlaWxlcmxpc3RlOiBOZXR6d2Vya3BhcnRuZXI=?=Hallo, an die Verteilerliste "Test" wurde eine E-Mail mit Betreff "Test" von der E-Mail-Adresse empfaenger @ domain.de gesendet.=20 F=C3=BCr den Versand der E-Mail an alle Empf=C3=A4nger der zugewiesenen Emp= f=C3=A4ngerliste klicken Sie auf folgenden Link: h t t p s://news.domain.de/distriblistconfirm.php?entry=3D4_mcnyc6i186tX Mit freundlichen Gr=C3=BC=C3=9Fen =0DFrom: Date: Thu, 23 Jul 2015 16:48:34 +0200 Message-Id: <307e9ccee2bed43f6cdc7a0381519fd5 @ web.domain.de> Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8"

Wie Sie sehen: Die Absenderkennung fehlt!

PS: Ich habe in die Ausgabe einige Leerzeichen bei Adressen eingefügt, da ich den Post sonst nicht speichern konnte ("zu viele Links")
Benutzeravatar
mirko
Beiträge: 22869
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von mirko »

adelphi hat geschrieben:
...

Nochmal zur Klarstellung:
- Wir wollen/können NICHT die "additional parameters" nutzen, da der SWM dann offensichtlich bei JEDER E-Mail den Absender damit überschreibt!?
- STATTDESSEN soll der SWM die individuelle Absenderkennung beibehalten, d.h. bei einem Mailing die dort hinterlegte Adresse (macht er ja auch) und bei dem Versand des Bestätigungslinks die Absenderkennung des Verteilers. Letzteres macht er merkwürdigerweise nicht...

Vielen Dank für die Hilfe!
additional Parameters darf man auch nicht nutzen, dann wäre der Absender immer gleich.

Bei der Verteilerliste muss er das auch machen, aus dem Grund ein echo z.B. VOR Zeile 134 setzen und die Angaben für $recipients, $subject, $text_headers ausgeben lassen. Den Bestätigungslink nochmals versenden lassen, so dass man die Ausgabe im Browser sieht. Wichtig ist halt das die from: Angabe in $text_headers korrekt übergeben wird. Ist das der Fall, dann nimmt der Server die Parameter nicht an, wenn nicht, hätte ich ein Fehler gemacht, glaub ich aber nicht, würde dann viele andere auch betreffen.
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

mirko hat geschrieben:Man könnte ein echo/print in die Datei PEAR\Mail_mail.php Zeile 139 einfügen und dort alle Parameter $recipients, $subject, $body, $text_headers und $this->_params im Browser ausgeben lassen.
Wir haben uns den Code mal angeschaut:

Code: Alles auswählen

// We only use mail()'s optional fifth parameter if the additional
        // parameters have been provided and we're not running in safe mode.
        if (empty($this->_params) || ini_get('safe_mode')) {
            $result = @mail($recipients, $subject, $body, $text_headers);
        } else {
            $result = @mail($recipients, $subject, $body, $text_headers,
                           $this->_params);
        }
Wenn wir bei Zeile 139 das echo einbauen, erhalten wir keine Ausgabe, somit sind wir offensichtlich nicht in der else-Bedingung.
Ist mit "mail()'s optional fifth parameter" der -f parameter gemeint? Da wir keine "additional parameters" gesetzt haben (dadurch änderte sich ja der Absender ALLER Mails) und auch keinen safe mode nutzen, wäre das zumindest eine Erklärung.

Daher haben wir das echo testweise in Zeile 137 eingefügt und die gewünschte Ausgabe erhalten. Allerdings enthält die Ausgabe keinen Absender, und den wollten wir doch eigentlich prüfen, oder?

Somit haben wir testweise die "additional paramaters" eingetragen und den Test wiederholt. Diesmal hat er die else-Bedingung ausgeführt und den bei additional parameters hinterlegten Absender ausgegeben.

Nochmal zur Klarstellung:
- Wir wollen/können NICHT die "additional parameters" nutzen, da der SWM dann offensichtlich bei JEDER E-Mail den Absender damit überschreibt!?
- STATTDESSEN soll der SWM die individuelle Absenderkennung beibehalten, d.h. bei einem Mailing die dort hinterlegte Adresse (macht er ja auch) und bei dem Versand des Bestätigungslinks die Absenderkennung des Verteilers. Letzteres macht er merkwürdigerweise nicht...

Vielen Dank für die Hilfe!
Benutzeravatar
mirko
Beiträge: 22869
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von mirko »

nein Debug-Log gibt es nicht direkt, zumindest nicht für PHP mail() über Umwege gibt es das für SMTP, weil man dort auch wirklich etwas sieht. Man könnte ein echo/print in die Datei PEAR\Mail_mail.php Zeile 139 einfügen und dort alle Parameter $recipients, $subject, $body, $text_headers und $this->_params im Browser ausgeben lassen. Damit man die Ausgabe sieht, sollte man bei der Verteilerliste neben der jeweiligen E-Mail nochmals die E-Mail mit dem Bestätigungslink versenden lassen. Die Ausgabe der Parameter wieder rausnehmen, per CronJob darf keine Ausgabe erfolgen.
adelphi
Beiträge: 119
Registriert: 29.10.2012, 14:57

Re: Absender-E-Mail-Adresse wird nicht übernommen

Beitrag von adelphi »

Die Adresse des Users "admin" ist bereits mit "webmaster@domain.de" gesetzt. Die Bestätigungs-E-Mail des Verteilers hat trotzdem www-run als Absender bzw. die mittels -f global festgelegte Adresse.
Gibt's es ein Debuglog, dass wir Ihnen zum Nachvollziehen des Problems zur Verfügung stellen können?
Antworten