[php] mail en return-path

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Ik zit met een mail probleempje, waar ik geen oplossing voor kon vinden met de search
Het probleem is dat ik de Return-Path in m'n headers wil instellen zodat als er gemailed wordt naar een niet bestaand account, dat de mail dan weer terugkomt (met een foutmelding - zoals dat normaal ook het geval is).

Ik had dit (2 jaar oude) topic gevonden:
[rml][ php] Undelivered Mail Returned to Sender[/rml]
Maar daar kom ik dus niet verder mee, aangezien de TS daar ook geen antwoord op z'n vraag krijgt.
Het enige wat ik verder heb kunnen vinden is dat je de settings aan moet passen, maar dat gaat in mijn geval niet op, want dit is een mail-functie voor meerdere users. De Return-Path moet dus variabel (kunnen) zijn.

Ik heb m'n headers nu als volgt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$headers    = "From: ".$from_name." <".$from_email.">\r\n";
$headers    .= "Return-Path: <".$from_email.">\r\n";

$headers    .= "X-Sender: Apache\r\n";
$headers    .= "X-Mailer: PHP4\r\n";
$headers    .= "X-Priority: 3\r\n";

$headers    .= "Reply-To: ".$from_name." <".$from_email.">\r\n";
$headers    .= "Content-Type: text/html; charset=iso-8859-1\r\n";

$headers    .= "cc: some@ddress.nl\r\n";
$headers    .= "bcc: another@ddres.nl";


Ik heb die Return-Path regel ondertussen al zo'n beetje op iedere denkbare plek gehad (qua volgorde), heb ook nog geprobeerd wat er gebeurde als ik van die \r\n \n zou maken, maar hielp allemaal niet.

Hopelijk weet inmiddels iemand het anwoord

Acties:
  • 0 Henk 'm!

Verwijderd

Sender: header gebruiken?

Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 08:29

Tjark

DON'T PANIC

als je op een unix/linux systeem zit en de php mail functie gebruikt (en op sendmail is ingesteld) zou je de -f optie moeten proberen

PHP:
1
2
mail("nobody@example.com", "the subject", $message,
     "From: $from_email", "-f$from_email");

[ Voor 16% gewijzigd door Tjark op 05-06-2003 14:26 ]

*insert signature here


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Que?
TjarkVerhoeven schreef op 05 juni 2003 @ 14:25:
als je op een unix/linux systeem zit en de php mail functie gebruikt (en op sendmail is ingesteld) zou je de -f optie moeten proberen

PHP:
1
2
mail("nobody@example.com", "the subject", $message,
     "From: $from_email", "-f$from_email");
Dat zou een goeie geweest zijn als Safe Mode niet aan had gestaan.. :'(

Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij kun je Return-Path niet zelf veranderen met mail(). Ik weet het niet 100% zeker, maar zoiets staat me bij. De beste manier om mail te versturen, is imo nog steeds een socket opentrekken richting een smtp server en daar je mail doorheen sturen, dan kun je zeker weten je Return-Path zo opgeven als jij wilt.

Acties:
  • 0 Henk 'm!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
DarthRaider: dit klopt ja. De Return-Path header wordt door de mailserver toegevoegd. Als je een sessie opent naar een SMTP server, krijg je ook zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HELO/EHLO localhost
-->response
MAIL FROM: ik@mijndomein.nl (hier dus de envelope sender, oftewel return-path)
--> response
RCPT TO: jij@jouwdomein.nl
RCPT TO: tweede@jouwdomein.nl
..etc...
DATA
...hier HTML bericht met headers enz.
From: ander_account@mijndomein.nl (dit is wat je in bijv. Outlook Express ziet, en dus ongelijk aan de envelope sender)
To: etc@jouwdomein.nl

<HTML>
...etc.
</HTML>
.


De "-f" optie van php stelt geloof ik de envelope sender (het return path) in, maar kreeg het hier niet aan de gang met mijn mailserver.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Wel, ik zat me te bedenken dat de server waar het op draait toch geen gesharede toestand is. Er draait nog 1 ander domein op, maar die is ook in ons beheer en er zal ook niets meer bijkomen, dus ik heb een vriend van me (die dat ding beheert) Safe Mode uit laten zetten.
de -f optie bleek toen goed te werken. Als ik nu een mailtje naar een niet bestaand adres stuur krijg ik 'm netjes als undeliverable terug

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Hier even de TS van dat andere topic:
Ik heb het probleem op kunnen lossen in de EXIM-configuratie. Dat lukte me pas meer dan een jaar na de oorspronkelijke vraag. (toen er een klant bereid was te betalen voor het probleem...). Bij andere klanten hebben mails direct via SMTP en fsockopen naar de ontvangende host of een relay gestuurd op de manier de B-man aangeeft.
Ik kan even zoeken in de EXIM-configuratie hoe ik het daar heb opgelost... ('t was ranzig, maar het voldeed)

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Zie voor exim 3.3x deze info. Hiermee stel je echter een vaste return path in voor alle mails die door een bepaalde transport worden afgehandeld.

Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 13:29
Je kan
Errors-to:
en/of
X-Errors-to:

in je mailheaders zetten. Dat werkt goed bij mij. (Perfect wil ik niet zeggen, omdat je het niet weet als het mailtje een keer niet teruggestuurd wordt)

Acties:
  • 0 Henk 'm!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
sjaaky: deze headers worden volgens mij niet door iedere mailserver gerespecteerd. De enige header die betrouwbaar werkt is de envelope sender.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Bedankt voor die info over exim, maar ik denk dat ik mijn 'safe-mode uit' methode toch wat makkelijk vind op dit moment :)
Maar, mocht ik die luxe in de toekomst een keer niet hebben, dan zal ik hier zeker wat aan hebben!
Pagina: 1