PDA

Bekijk Volledige Versie : formuliertje en afzender



Wouter
14/01/03, 01:58
Hoi,

Ik heb een formuliertje gemaakt met behulp van PHP probeer ik de gegevens
gemailed te krijgen. Dat op zich lukt. Wat ik nu zie als ik een mailtje
krijg is dat apache de afzender is.
Ik zo graag willen dat het mail adres van de invuller de afzender is zodat
ik gewoon op beantwoorden kan klikken
Ik heb het volgende geprobeerd om het afzender adres te veranderen.:
$header = "From: " . $email . "<$email>\nReturn-patch: $email";


Voor de zekerheid geef ik nog maar wat van het scriptje mee zodat
waarschijnlijk makkelijker duidelijk is wat en hoe ik het doe.

$header = "From: " . $email . "<$email>\nReturn-patch: $email";
$recipient = "mijn@mailadres.net";
$subject = "Bericht van " . $naam . " ontvangen\n";
$mail_body = "Naam: " . $naam . "\n";
$mail_body .= "E-mailadres: " . $email . "\n\n";
$mail_body .= "onderwerp: " . $onderwerp . "\n\n";
$mail_body .= "Bericht:\n";
$mail_body .= $bericht . "\n\n -- Einde van automatschie gebouwed
bericht --";
mail($recipient, $subject, $mail_body, $header);

--
Groeten Wouter

Wimjan
14/01/03, 02:37
Wouter schreef:
> Hoi,
>
> Ik heb een formuliertje gemaakt met behulp van PHP probeer ik de gegevens
> gemailed te krijgen. Dat op zich lukt. Wat ik nu zie als ik een mailtje
> krijg is dat apache de afzender is.
> Ik zo graag willen dat het mail adres van de invuller de afzender is zodat
> ik gewoon op beantwoorden kan klikken
> Ik heb het volgende geprobeerd om het afzender adres te veranderen.:
> $header = "From: " . $email . "<$email>\nReturn-patch: $email";
>
>
> Voor de zekerheid geef ik nog maar wat van het scriptje mee zodat
> waarschijnlijk makkelijker duidelijk is wat en hoe ik het doe.
>
> $header = "From: " . $email . "<$email>\nReturn-patch: $email";
[...]

> mail($recipient, $subject, $mail_body, $header);
>
Op <http://www.php.net/manual/en/function.mail.php> vind je een
verhelderend stuk hierover. Een paar hoogtepunten (;-):

- "Note: You must use \r\n to separate headers, although some Unix mail
transfer agents may work with just a single newline (\n)."

- Te proberen valt om een vijfde parameter mee te geven:

"Example 3. Sending mail with extra headers and setting an additional
command line parameter.

mail("nobody@example.com", "the subject", $message,
"From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");

Note: This fifth parameter was added in PHP 4.0.5. Since PHP 4.2.3 this
parameter is disabled in safe_mode and the mail() function will expose a
warning message and return FALSE if you're trying to use it."


Je kunt natuurlijk ook het probleem omzeilen en een Reply-To-header
toevoegen, waarschijnlijk werkt die ook wel in Outlook Express.

> --
Je sig-scheider is kapot.

> Groeten Wouter

Groet,

Wimjan

--
Iemands e-mailadres kwijt? Probeer m'n meta e-mail zoeker eens op
<http://inventio.nl/metanamesearch/>

Ronald Klip
14/01/03, 10:37
Wouter schreef:
>
> Ik heb het volgende geprobeerd om het afzender adres te veranderen.:
> $header = "From: " . $email . "<$email>\nReturn-patch: $email";

Return-path, bedoel je, niet Return-patch.

> Voor de zekerheid geef ik nog maar wat van het scriptje mee zodat
> waarschijnlijk makkelijker duidelijk is wat en hoe ik het doe.
>
> $header = "From: " . $email . "<$email>\nReturn-patch: $email";

idem.
Misschien helpt het!

--
groet, Ronald

Rene Pijlman
14/01/03, 10:50
Wimjan:
>Op <http://www.php.net/manual/en/function.mail.php> vind je een
>verhelderend stuk hierover. Een paar hoogtepunten (;-):
>
>- "Note: You must use \r\n to separate headers, although some Unix mail
>transfer agents may work with just a single newline (\n)."

Dat staat er inderdaad, maar het gekke is dat ik de omgekeerde
ervaring heb (op een Linux server). Met \n werkt het prima, met
\r\n krijg ik verminkte mailtjes met headers in de content.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Rene Pijlman
14/01/03, 10:56
Wouter:
>Wat ik nu zie als ik een mailtje krijg is dat apache de afzender is.

Post even de relevante header(s). In het bijzonder de From die
jij meegeeft en de header met "apache" als afzender.

>$header = "From: " . $email . "<$email>\nReturn-patch: $email";
^
Hier ontbreekt denk ik een spatie (maar ik heb niet in de RFC
gekeken of die verplicht is).

Probeer het eens gewoon zo:

$header = "From: $email";

.... om alle syntaxproblemen uit te sluiten.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Jeffrey Drooghenbroodt
14/01/03, 11:08
Wouter wrote:

> $header = "From: " . $email . "<$email>\nReturn-patch: $email";

Ik zou net voor <$email> gevoelsmatig een spatie zetten.
En met "Return-patch" zul je waarschijnlijk "Return-path" bedoelen...

dus:
$header = "From: " . $email . " <$email>\nReturn-path: $email";

--
Jeffrey
http://www.pebbels.be/

Wouter
14/01/03, 11:24
>
> Probeer het eens gewoon zo:
>
> $header = "From: $email";

Wat ik dan krijg is dat er in de body van het bericht komt te staan From:
hetingevulde@mailadres.com

Groeten Wouter

Rene Pijlman
14/01/03, 11:31
Wouter:
>Wat ik dan krijg is dat

Nogmaals: post even de exacte tekst van de headers en body van
het mailtje. Anders blijft het gissen voor ons.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Wouter
14/01/03, 12:04
>
> Nogmaals: post even de exacte tekst van de headers en body van
> het mailtje. Anders blijft het gissen voor ons.

Sorry dit was ik even vergeten....

Return-Path: <wwwrun@phyton.addrenaline.com>
Received: from phyton.addrenaline.com (localhost [127.0.0.1])
by phyton.addrenaline.com (8.12.3/8.12.2/SuSE Linux 0.6 DZ) with ESMTP id
h0EAjfX6012331
for <wouter@addrenaline.com>; Tue, 14 Jan 2003 11:45:41 +0100
Received: (from wwwrun@localhost)
by phyton.addrenaline.com (8.12.3/8.12.3/Submit) id h0EAjfNv012330;
Tue, 14 Jan 2003 11:45:41 +0100
Date: Tue, 14 Jan 2003 11:45:41 +0100
From: Daemon user for apache <wwwrun@phyton.addrenaline.com>
Message-Id: <200301141045.h0EAjfNv012330@phyton.addrenaline.com>
To: wouter@addrenaline.com
Subject: Bericht van test ontvangen
X-UIDL: ]3,!!7:T"!Q9(!!J"e!!

From: test@addrenaline.com <test@addrenaline.com>
Return-path: test@addrenaline.com

Het contact formulier werd op 14-01-2003 om 11:45 uur uitgevoerd.
De invuller had IP: 192.168.1.5
Met de host:
Ident was:

De volgende gegevens werden ingevoerd:

Naam: test
E-mailadres: test@addrenaline.com

onderwerp: test

Bericht:
test bericht

-- Einde van automatschie gebouwed bericht --

Groeten Wouter

Rene Pijlman
14/01/03, 12:13
Wouter:
>Subject: Bericht van test ontvangen
>X-UIDL: ]3,!!7:T"!Q9(!!J"e!!
>
>From: test@addrenaline.com <test@addrenaline.com>
>Return-path: test@addrenaline.com
>
>Het contact formulier werd op 14-01-2003 om 11:45 uur uitgevoerd.

Het lijkt erop dat je ergens in de headers een overtollige
newline plaatst. Het mail message format zit namelijk zo in
elkaar dat header en body gescheiden worden door een lege regel.
Zo'n extra newline in de headers geeft dan dit effect.

Dit is de enige overtollige newline die ik in jouw script zie:

$subject = "Bericht van " . $naam . " ontvangen\n";
^^

Dit zou de verklaring kunnen zijn als we aannemen dat de X-UIDL
header door de mail server aan de headers is toegevoegd, nadat
PHP de mail aan de mail server heeft overgedragen.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Wouter
14/01/03, 12:42
> Dit is de enige overtollige newline die ik in jouw script zie:
>
> $subject = "Bericht van " . $naam . " ontvangen\n";
> ^^
Als ik de met $subject niet gebruik klopt dan krijg ik inderdaad een goeie
afzender.

Maar het moet toch mogelijk zijn om ook een bericht onderwerp mee te geven ?

Groeten Wouter

Rene Pijlman
14/01/03, 12:44
Wouter:
>Maar het moet toch mogelijk zijn om ook een bericht onderwerp mee te geven ?

Ja doei, je moet zelf ook een beetje nadenken. Lees nog eens
goed wat ik schreef.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Wouter
14/01/03, 13:00
> Ja doei, je moet zelf ook een beetje nadenken. Lees nog eens
> goed wat ik schreef.

Mijn vraag was niet bedoeld dat je me de oplossing ging geven ik wou alleen
weten of kon... (achteraf stomme vraag want ik had al gezien dat het kon)


Groeten Wouter