/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mail() og bounce
Fra : Jacob Jørgensen


Dato : 09-03-06 23:05

Hej

Jeg har nogle problemer med PHP's mail() og mails der ikke bouncer tilbage
til mig, men til standard mailadressen for httpd serveren.
Til nogle funktioner på en hjemmeside, bliver der sendt mails ud til kunder
omkring bekræftelser af køb osv.
Jeg har en form som ved submit udfører f.eks. følgende kode:

---
<?
$to = "ikke-eksisterende@domain-der-ikke-eksisterer.com";
$subject = "the subject";
$message = "hello";
$header = "From: mail@mitdomæne.dk\r\n" . "Reply-To: mail@mitdomæne.dk\r\n"
.. "Return-Path: mail@mitdomæne.dk\r\n" . "Return-Receipt-To:
mail@mitdomæne.dk\r\n";
mail($to, $subject, $message, $header);
?>
---

Problemet er at der ikke kommer en mail tilbage til mig, hvis der bliver
sendt en mail til en ikke eksisterende adresse. Jeg kan også se at headers i
de sendte mails er:

---
Return-Path: <httpd@ws17.surf-town.net>
From: post@jacobjorgensen.dk
Reply-To: post@jacobjorgensen.dk
Return-Receipt-To: post@jacobjorgensen.dk
---

Dvs. de bouncede mails bliver leveret til httpd@ws17.surf-town.net ?
Jeg har læst om at man kan opsætte sendmail_from parametren (som skulle
sætte "Return-Path" headeren) som et 5. parameter i mail() kommandoen som
følgende:

---
<?php
mail('nobody@example.com', 'the subject', 'the message', null,
'-fwebmaster@example.com');
?>
---

Se her: http://dk2.php.net/manual/en/function.mail.php
Det har jeg dog heller ikke kunne få til at virke.
En anden mulighed skulle være at sætte nogle parametre på "sendmail_path"
php konfigurations variablen. Som f.eks.

---
sendmail_path = "sendmail -t -i -F webmaster@yoursite.com -f
webmaster@yoursite.com"
---

På den måde skulle "Return-Path:"-headeren blive sat til
webmaster@yoursite.com
Denne variabel (sendmail_path) er vist ikke mulig at sætte i en .htaccess,
da det er en PHP_INI_SYSTEM variabel ifølge:
http://dk2.php.net/manual/en/ini.php . Såvidt jeg har forstået på min host,
kan jeg ikke ændre disse variabler i .htaccess.

phpinfo for min host (surftown) kan ses her:
http://ws1.surf-town.net/phpinfo.php

Det er de muligheder jeg har været igennem. Nogen der har andre forslag,
eller er det bare mig der har klumret i det?

Mvh Jacob



 
 
Martin (10-03-2006)
Kommentar
Fra : Martin


Dato : 10-03-06 00:57

[KLIP]

Jeg plejer at bruge PEAR :: Mail, den virker ihvertfald fremragende,
også med returnpath.

<http://pear.php.net/package/Mail>

Frederik Sunne (10-03-2006)
Kommentar
Fra : Frederik Sunne


Dato : 10-03-06 10:23

Prøv:

http://phpmailer.sourceforge.net/

Her man man sætte returnpath. En fin lille klasse.

/Frederik

Jacob Jørgensen wrote:
> Hej
>
> Jeg har nogle problemer med PHP's mail() og mails der ikke bouncer tilbage
> til mig, men til standard mailadressen for httpd serveren.
> Til nogle funktioner på en hjemmeside, bliver der sendt mails ud til kunder
> omkring bekræftelser af køb osv.
> Jeg har en form som ved submit udfører f.eks. følgende kode:
>
<snip>

Jacob Jørgensen (12-03-2006)
Kommentar
Fra : Jacob Jørgensen


Dato : 12-03-06 10:43

> Prøv:
> http://phpmailer.sourceforge.net/
> Her man man sætte returnpath. En fin lille klasse.

Jeg fik det til at virke, hvis jeg satte den op til at benytte en SMTP
server. Hvis jeg satte den op til at benytte den normale mail()-kommando i
PHP til at sende med, kunne den ikke sætte "Return-Path:". Er det en fejl
fra min side? Jeg sætter "Sender" parametren til f.eks. post@mitdomæne.dk .
Derved skulle Return-Path sættes til denne adresse, ligemeget om man
benytter metoden SMTP eller mail?

Mvh Jacob





Henrik Hansen (13-03-2006)
Kommentar
Fra : Henrik Hansen


Dato : 13-03-06 11:27

"Jacob Jørgensen" <post@REMOVEjacobjorgensen.dk> writes:

>> Prøv:
>> http://phpmailer.sourceforge.net/
>> Her man man sætte returnpath. En fin lille klasse.
>
> Jeg fik det til at virke, hvis jeg satte den op til at benytte en SMTP
> server. Hvis jeg satte den op til at benytte den normale mail()-kommando i
> PHP til at sende med, kunne den ikke sætte "Return-Path:". Er det en fejl
> fra min side? Jeg sætter "Sender" parametren til f.eks. post@mitdomæne.dk .
> Derved skulle Return-Path sættes til denne adresse, ligemeget om man
> benytter metoden SMTP eller mail?

Jeg har selv arbejdet med at faa det til at virke optimalt og jeg
fandt ud af den eneste maade jeg kunne faa det til at virke paa var
ved at saette det parameter paa mail().

Det skulle tilfaeldigvis ikke vaere en windows server du bruger, siden
du ikke kan saette det. Eller brugeren serveren safe_mode? Hvis den
goer det maa man nemlig ikke saette det ekstra parameter.

--
Henrik Hansen

Jacob Jørgensen (13-03-2006)
Kommentar
Fra : Jacob Jørgensen


Dato : 13-03-06 12:24

> Det skulle tilfaeldigvis ikke vaere en windows server du bruger, siden
> du ikke kan saette det. Eller brugeren serveren safe_mode? Hvis den
> goer det maa man nemlig ikke saette det ekstra parameter.
>
Linux server i Safe-mode hos Surftown. Så det er nok der den ligger
begravet.

Tak for hjælpen

Mvh Jacob



Geert Lund (13-03-2006)
Kommentar
Fra : Geert Lund


Dato : 13-03-06 14:05

Jacob Jørgensen wrote:

> Linux server i Safe-mode hos Surftown. Så det er nok der den ligger
> begravet.

Surftown burde dog tilbyde dig at sætte det i konfigurationen. Prøv at
spørge deres support om ikke de vil sætte det op så det virker rigtigt.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Jacob Jørgensen (13-03-2006)
Kommentar
Fra : Jacob Jørgensen


Dato : 13-03-06 18:03

> Surftown burde dog tilbyde dig at sætte det i konfigurationen. Prøv at
> spørge deres support om ikke de vil sætte det op så det virker rigtigt.
>

Har skrevet et par forespørgsler til deres support.

Deres svar har dog hver gang været at de ikke yder support på programmering
og at jeg kunne forespørge i deres forum på:
http://forum.surftown.dk
Der har jeg skrevet, men intet svar.

Så jeg ved ikke lige hvad planen er. Nogen der har erfaringer med dette og
surftown?

Mvh Jacob



Geert Lund (14-03-2006)
Kommentar
Fra : Geert Lund


Dato : 14-03-06 07:53

Jacob Jørgensen wrote:

> Har skrevet et par forespørgsler til deres support.
>
> Deres svar har dog hver gang været at de ikke yder support på programmering
> og at jeg kunne forespørge i deres forum på:
> http://forum.surftown.dk
> Der har jeg skrevet, men intet svar.

Well, de skal jo heller ikke yde dig support i programmering - de skal
blot indsætte:

php_admin_value sendmail_from "www@<ditdomæne>.<tld>"

i en relevant Apache konfigurationsfil... Det kan man da vist ikke kalde
support men alm. god kundeservice.

Men hvad ved jeg om det...

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Henrik Hansen (14-03-2006)
Kommentar
Fra : Henrik Hansen


Dato : 14-03-06 09:16

Geert Lund <glund-news@post.tele.dk> writes:

> Jacob Jørgensen wrote:
>
>> Har skrevet et par forespørgsler til deres support.
>> Deres svar har dog hver gang været at de ikke yder support på
>> programmering og at jeg kunne forespørge i deres forum på:
>> http://forum.surftown.dk
>> Der har jeg skrevet, men intet svar.
>
> Well, de skal jo heller ikke yde dig support i programmering - de skal
> blot indsætte:
>
> php_admin_value sendmail_from "www@<ditdomæne>.<tld>"
>
> i en relevant Apache konfigurationsfil... Det kan man da vist ikke
> kalde support men alm. god kundeservice.

Man kan tjekke om man har adgang til .htaccess filer, så kan man
vel gøre det selv det su skriver ovenfor.

--
Henrik Hansen

Geert Lund (14-03-2006)
Kommentar
Fra : Geert Lund


Dato : 14-03-06 19:39

Henrik Hansen wrote:

> Man kan tjekke om man har adgang til .htaccess filer, så kan man
> vel gøre det selv det su skriver ovenfor.

Har faktisk ikke checket på hvilket niveau den setting kan sættes. Her
er det en del af standardopsætningen at den sættes seperat pr.
kunde/webhotel.

Men jf. http://dk.php.net/manual/fi/ini.php kan sendmail_from sættes
vilkårligt så jo, du har ret - hvis webhotellet tillader det - er
muligheden at sætte det via .htaccess :)

--
Med venlig hilsen
Geert Lund,
www.GLD.dk


Jacob Jørgensen (14-03-2006)
Kommentar
Fra : Jacob Jørgensen


Dato : 14-03-06 19:31

> php_admin_value sendmail_from "www@<ditdomæne>.<tld>"
>

Sådan her er "sendmail_from" parameteren beskrevet:

sendmail_from string
Angiver hvilken "From:" e-mailadresse der skal bruges ved sending af mail
fra PHP under Windows.
http://dk.php.net/manual/da/ref.mail.php#ini.sendmail-from

Kan den også sættes når det IKKE er en windows server?

Hvis jeg sætter den i min .htaccess får jeg bare en fejl 500 på mit php
script og følgende i min error_log:
[Tue Mar 14 19:27:59 2006] [alert] [client 80.*.*.*]
/hsphere/local/home/*/*/*/.htaccess: php_admin_value not allowed here
* indsat istedet for diverse

Jeg har indsat følgende:
php_admin_value sendmail_from navn@mitdomæne.dk

Så jeg tror bare jeg er nødt til at benytte eksterne pakker for at få lov
til at sende mail rigtigt

Mvh Jacob



Dan Storm (10-03-2006)
Kommentar
Fra : Dan Storm


Dato : 10-03-06 16:16

Jacob Jørgensen skrev:
> Det er de muligheder jeg har været igennem. Nogen der har andre forslag,
> eller er det bare mig der har klumret i det?

Hvis jeg ikke husker meget galt, så er det noget med at bouncemail
udføres ved at bounceren modtager mailen og forespørger så derefter den
SMTP server hvilken mailadresse mailen skal bounces tilbage til.

Som regel, så har den SMTP server du bruger hos TDC, Telia osv. et
sorteringssystem som gør at bouncemailen kommer tilbage til afsenderen.

Men flere webhotelsusbydere bruger vist ikke den løsning og det gør at
bounceren for den melding at uønsket mail fra udbyderens SMTP server
skal sendes tilbage til serverens mailadresse.

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Michael Zedeler (11-03-2006)
Kommentar
Fra : Michael Zedeler


Dato : 11-03-06 10:15

Dan Storm wrote:
> Jacob Jørgensen skrev:
>
>> Det er de muligheder jeg har været igennem. Nogen der har andre
>> forslag, eller er det bare mig der har klumret i det?
>
> Hvis jeg ikke husker meget galt, så er det noget med at bouncemail
> udføres ved at bounceren modtager mailen og forespørger så derefter den
> SMTP server hvilken mailadresse mailen skal bounces tilbage til.
>
> Som regel, så har den SMTP server du bruger hos TDC, Telia osv. et
> sorteringssystem som gør at bouncemailen kommer tilbage til afsenderen.
>
> Men flere webhotelsusbydere bruger vist ikke den løsning og det gør at
> bounceren for den melding at uønsket mail fra udbyderens SMTP server
> skal sendes tilbage til serverens mailadresse.

Det passer ikke. Der er en envelope-addresse,som netop kan sættes på
vha. flaget -f når man bruger sendmail i kommandolinieversionen. Denne
adresse behøver ikke at være den sammen, som den der står i From-feltet.
Man skal blot sørge for at sætte envelope-adressen korrekt - såvil det
virke efter hensigten.

Grunden til at den sender retur til en lidt arbitrær adresse lige nu, er
at man ikke kan sende mails uden at angive en envelope-adresse. Derfor
har PHP en standard-afsenderadresse, som den benytter, når man ikke
angiver en selv.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Dan Storm (11-03-2006)
Kommentar
Fra : Dan Storm


Dato : 11-03-06 13:54

Michael Zedeler skrev:
> Det passer ikke.

Tak for info'en! :) Der er hermed noteret! :)

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Henrik Hansen (10-03-2006)
Kommentar
Fra : Henrik Hansen


Dato : 10-03-06 09:58

"Jacob Jørgensen" <post@REMOVEjacobjorgensen.dk> writes:

> Hej
>
> Dvs. de bouncede mails bliver leveret til httpd@ws17.surf-town.net ?
> Jeg har læst om at man kan opsætte sendmail_from parametren (som skulle
> sætte "Return-Path" headeren) som et 5. parameter i mail() kommandoen som
> følgende:
>
> ---
> <?php
> mail('nobody@example.com', 'the subject', 'the message', null,
> '-fwebmaster@example.com');
> ?>
> ---


Det er det femte parameter du skal du bruge, som du selv naevner.. Det
er underligt du ikke kan faa det til at virke, det burde det, faar du
ikke en reply on user does not exist ? Hvordan ser dit mail kald
noejagtigt ud naar du bruger det femte parameter, kan du paste det her ?


--
Henrik Hansen

Jacob Jørgensen (12-03-2006)
Kommentar
Fra : Jacob Jørgensen


Dato : 12-03-06 10:54

> Det er det femte parameter du skal du bruge, som du selv naevner.. Det
> er underligt du ikke kan faa det til at virke, det burde det, faar du
> ikke en reply on user does not exist ? Hvordan ser dit mail kald
> noejagtigt ud naar du bruger det femte parameter, kan du paste det her ?
>

Dette er koden:

<?
$to = "modtager@email.dk";
$subject = "Dette er subject";
$message = "Dette er beskeden i body";
$header = "From: post@mitdomæne.dk\r\n" . "Reply-To: post@mitdomæne.dk\r\n";
if (mail($to, $subject, $message, $header, '-fpost@mitdomæne.dk)) {
print "sendt";
}
else {
print "fejl";
}
?>

Den printer "fejl" ved kørsel. Som om serveren slet ikke vil acceptere det
5. parameter. Uden det parameter, virker det fint, men så bliver return-path
også bare serverens default.

Det virkede, som jeg skrev i et andet svar, heller ikke med klassen
phpmailer. Den kunne heller ikke få lov til at sætte det 5. parameter.

Mvh Jacob



Allan Kok (13-03-2006)
Kommentar
Fra : Allan Kok


Dato : 13-03-06 16:22

> Dette er koden:
>
> <?
> $to = "modtager@email.dk";
> $subject = "Dette er subject";
> $message = "Dette er beskeden i body";
> $header = "From: post@mitdomæne.dk\r\n" . "Reply-To:
> post@mitdomæne.dk\r\n";
> if (mail($to, $subject, $message, $header, '-fpost@mitdomæne.dk)) {

Der hvor jeg bruger den 5. parameter har jeg et mellemrum efter -f
'-f post@mitdomæne.dk'
også skal du huske et ' efter!

Allan



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste