[sendmail/php] verkeerd mail adres bij non-delivery reports

Pagina: 1
Acties:

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 31-01 15:04
SITUATIE :

Linux server met webserver (apache2) en sendmail om te relayen naar een uitgaande mail server.
In php.ini staat sendmail geconfigureerd :
code:
1
sendmail_path = /usr/sbin/sendmail -t -i

Dit werkt trouwens, dus geen probleem...


PROBLEEM :

Als een mailbox niet bestaat, wordt er uiteraard een non-delivery report terug gestuurd. Maar dit stuurt hij naar apache@<hostname> en niet naar de "From" of de "Reply-To" uit de mail header.


OPLOSSING ?!

Ik heb al zitten googlen en zitten zoeken in dit forum, maar ik word er niet wijzer van. Ik weet ook niet echt waar ik op moet zoeken, dus eender welke duw in de juiste richting zou heel erg geapprecieerd worden, dan kan ik me in de juiste richting wat verdiepen.

  • smesjz
  • Registratie: Juli 2002
  • Niet online
Je kan de envelop sender zetten met -f ->

man sendmail ->

-f sender
Set the envelope sender address. This is the address where delivery problems are sent to. With Postfix versions before 2.1, the Errors-To:
message header overrides the error return address.

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 31-01 15:04
smesjz schreef op dinsdag 17 april 2007 @ 15:20:
Je kan de envelop sender zetten met -f ->

man sendmail ->

-f sender
Set the envelope sender address. This is the address where delivery problems are sent to. With Postfix versions before 2.1, the Errors-To:
message header overrides the error return address.
Maar daarmee stel je je sender address toch vast in? Ik zou graag hebben dat hij de "From" uit de header overneemt, zodat non-delivery reports terug bij de afzender aankomen.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Dat kan niet, want zo werkt SMTP niet. Zorg wel dat het adres dat je op die manier instelt (envelope sender geheten) een adres is dat bestaat, anders accepteren veel servers 'm niet.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • smesjz
  • Registratie: Juli 2002
  • Niet online
Het kan met een omweg geloof ik:

ini_set("sendmail_form","afzender@adres.nl");

Dat is blijkbaar de PHP manier om de envelop sender in te stellen.

Bron: http://nl3.php.net/mail

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 31-01 15:04
Ja, zo kan je het in PHP doen, en zo ga ik het dan ook (vrees ik) moeten doen, aangezien er geen globale oplossing is.

Er is trouwens nog een andere manier :

PHP:
1
mail('nobody@example.com', 'the subject', 'the message', null,'-fwebmaster@example.com');

  • Tycoontje
  • Registratie: Februari 2003
  • Laatst online: 14:34
Ik vroeg me af of je in de 4e parameter (additional headers) zoiets mee kunt geven. Iets als Envelope-from ofzo. Of Envelope-sender. Zo te zien moet je daarvoor even in de RFC 2822 documentatie duiken ( http://www.faqs.org/rfcs/rfc2822 volgens PHP.net). Ben benieuwd of iemand nog een betere oplossing heeft. Volg het topic al vanaf 14:24 voor het verlossende antwoord.. :)

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Tycoontje: zoals ik al zei, dat kan dus niet want zo werkt SMTP niet.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 31-01 15:04
smesjz schreef op dinsdag 17 april 2007 @ 20:41:
Het kan met een omweg geloof ik:

ini_set("sendmail_form","afzender@adres.nl");

Dat is blijkbaar de PHP manier om de envelop sender in te stellen.

Bron: http://nl3.php.net/mail
Voor de volledigheid 2 opmerkingen hierover :
- het is sendmail_from en niet sendmail_form
- dat werkt alleen onder Windows, de eerder gemelde oplossing van mij werkt onder Linux

  • smesjz
  • Registratie: Juli 2002
  • Niet online
codemann schreef op woensdag 18 april 2007 @ 09:01:
[...]


Voor de volledigheid 2 opmerkingen hierover :
- het is sendmail_from en niet sendmail_form
- dat werkt alleen onder Windows, de eerder gemelde oplossing van mij werkt onder Linux
Ja, zag het net pas. My bad. Die mail() documentatie van PHP is ook al aangepast sinds ik voor het laatst keek ;) Maar die -f meesturen in de mail() is natuurlijk het netste.
Volgens mij moest je in de sendmail config dan wel aangeven dat de Apache user die envelop sender mag zetten anders krijg je weer zo'n X-warning header geloof ik ('X:warning: www-data sets envelop header to .....).

Met Postfix 2.2 doe je dat via authorized_submit_users (default mag iedereen het gebruiken).
Pagina: 1