[Exim/PHP] Versturen externe mail via SMTP weigert

Pagina: 1
Acties:

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04-2025
Op een server waar ik Fedora Core 3 draai heb ik vandaag Exim 4.43-1-FC3 geïnstalleerd. Aangezien normale outbound e-mails weigeren (bijvoorbeeld naar @yahoo.com adressen; yahoo.com staat niet open op poort 25 -> e-mail wordt niet verzonden; weet iemand hier misschien een oplossing voor?) heb ik het SMTP-adres van mijn ISP ingesteld in exim.conf:

code:
1
2
3
4
5
6
7
# SMTP remote gateway configuration - JeRa

send_to_gateway:
  driver = manualroute
  domains = !+local_domains
  transport = remote_smtp
  route_list = * smtp.tiscali.nl
Als ik nu met sendmail (symbolic link naar exim) een mailtje wil versturen naar een bepaald (outbound) adres, gaat exim proberen het mailtje door te geven aan smtp.tiscali.nl. Hier zit het probleem; deze SMTP-server controleert of 'Return-path'/'From' wel klopt. Dit staat in php.ini:

code:
1
sendmail_path = /usr/sbin/exim -t -i
En deze code:

PHP:
1
mail('adres@domein.com', 'Test', 'Test', 'From: anderadres@anderdomein.com');
Weigert, aangezien Exim de Return-path niet automatisch instelt op het From-adres dat in PHP is aangegeven, waardoor de SMTP-server het mailtje weigert. Ik wil dit adres niet instellen in exim.conf aangezien alle replies dan bij mij zouden uitkomen, als ik mijn eigen adres zou opgeven.

Hoe krijg ik het voor elkaar dat 'exim -t -i' automatisch de Return-path gelijk stelt aan de From-header? :)

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 00:43
Waarschijnlijk extra parameters opgeven met -f, dat kan je met de 5e parameter van de mail() functie van PHP doen.

Verder is exim absuluur niet RFC822 compliant, dus mag je nog iets toevoegen aan de exim config:

drop_cr = true

Die zorgt ervoor dat RFC822 compliant CRLF line-ends omgezet worden naar de unix conventie die exim er (incompatible) op nahoudt.
Return-path: header opgeven in PHP wil ook nog wel eens helpen.

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04-2025
Het idee is dat ik met de PHP-code uit de OP mailtjes kan versturen, zoals het bij de meeste webservers met PHP-ondersteuning kan. Een vijfde parameter meesturen gaat niet aangezien sommige websites in Safe Mode draaien, en een Return-Path-header meesturen lijkt geen effect te hebben op de afzender die Exim bepaalt (maar dit wil ik ook eigenlijk niet; een From-header zou genoeg moeten zijn om een missende Return-Path-header te vullen).

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04-2025
Anyone? Ik zal toch niet de enige zijn met een server met PHP, Exim en een SMTP-server van m'n ISP? :) ik weet dat het kan, maar weet tot nu toe nog niet hóe.

[ Voor 24% gewijzigd door JeRa op 14-06-2005 09:13 ]


  • FiscBiker
  • Registratie: April 2003
  • Laatst online: 17:22
_JGC_ schreef op zondag 12 juni 2005 @ 01:21:

Verder is exim absuluur niet RFC822 compliant, dus mag je nog iets toevoegen aan de exim config:

drop_cr = true

Die zorgt ervoor dat RFC822 compliant CRLF line-ends omgezet worden naar de unix conventie die exim er (incompatible) op nahoudt.
Return-path: header opgeven in PHP wil ook nog wel eens helpen.
Dat hoeft al sinds augustus 2003 niet meer.

http://www.exim.org/ftp/ChangeLogs/ChangeLog-4.21
punt 58

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04-2025
Laat ik het ff erg samenvatten. Ik wil dat de volgende code werkt:

PHP:
1
mail('adres@domein.tld', 'Onderwerp', 'Inhoud', 'From: adres@anderdomein.tld');


Op een Linux-machine met Exim. Ik wil dat de mailtjes verstuurd worden via de SMTP-server van m'n ISP. Hoe doe ik dat?

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04-2025
Kickje. :)

  • Sendy
  • Registratie: September 2001
  • Niet online
Kan je nog een keertje duidelijk uitleggen wat er mis ging met de -f optie? Heb je eraan gedacht om in exim trusted_users te zetten (want anders mag je niet de envelope sender wijzigen)?

Verwijderd

*kuch*
Ik moet leren lezen.

[ Voor 125% gewijzigd door Verwijderd op 16-06-2005 20:55 ]

Pagina: 1