08. maj 2001 - 17:34Der er
16 kommentarer og 1 løsning
Return-Path setting ved mail()
Hejsa
Jeg sidder med et lille problem, som efterhånden er ved at vokse sig stort. Ved brug af php\'s mail() kan jeg ikke fange returmail, forårsaget af manglende host eller manglende user.
Jeg skal ændre min Return-Path, men kan ikke hitte ud af det.
Return-Path (RP) sættes af sendmail. Du skal køre sendmail -f for at ændre RP.
Dette kan du gøre på to måder:
1. Ændre sendmail_path i php.ini til /usr/sbin/sendmail -f sk@it-c.dk -t -i (eller anden path til sendmail) Herefter kan du kalde mail() uden RP i headers.
2. Droppe mail og kalde sendmail direkte. Det gør du sådan. a. Opret tekstfil ved navn \"fisk\" sådan: =======snip======== From: sk@it-c.dk Reply-to: sk@it-c.dk Subject: --- dit subject her---- To: Anders@tillebech.dk X-Envelope-To: Anders@tillebech.dk
Tak for svaret. Jeg forstår det ikke helt må jeg indrømme. Jeg går fluks igang med at læse om sendmail() Jeg roder lige med det, og vender så tilbage med dine point. Hvis du har et godt link til noget info om denne sag, så tager jeg imod med kyshånd.
Vil dette virke når man ikke er andet end almindelig bruger af systemet? Det er min skoles computer.
sendmail er et meget kompliceret program. Der er ingen sendmail() funktion. Det er muligt at det vil virke for en almindelig bruger. Det afhænger af systemadministratoren på skolen. Du kan jo prøve.
Hvis du er i tvivl, så prøv løsning nummer 2. Det er den nemmeste. DER ER DESUDEN EN FEJL i metode 2.
I stedet for system(\"cat fisk | /usr/sbin/sendmail -f sk@it-c.dk -t\");
alvion: Et hurtigt kig på RFC821 fra August 1982 viser at du har ret. Headers skal adskilles med \\r\\n. sendmail er imidlertid ligeglad. Og det ændrer ikke Return-Path.
With the fifth parameter you can set additional command line parameters to the actual mailer. In the example below we set the correct Return-Path header for sendmail. Normally sendmail will add the X-Authentication-Warning header when using the -f parameter, because the webserver user is probably not a member of the trusted users. To suppress this warning, you should add the web server user to the trusted users in your sendmail config file.
Note: This fifth parameter was added in PHP 4.0.5.
Example 3. Sending mail with extra headers and setting an additional command line parameter.
Hej igen. Jeg er lige inde på siden, og ser debatten, som har kørt. Interessandt. Desværre har jeg først tid til at rode med det på fredag, så da må jeg igang igen.
Jeg havde læst ovenstående, men troede ikke, at det ville virke når jeg ikke var (og ikke kan blive) en \"trusted user\". Hvis det hele bare står og falder med en advarsel af en type, men alligevel ændrer Return-Pathen, så kommer det hele til at køre fint.
På den side, vi alle har linket til fandt jeg:
Want to know how to configure the Return-Path header? Say that you usually send mail with the PHP mail() function as such: mail($toaddress,$subject,$body,$headers); where $headers includes \"From: $fromaddress\\n\" among other things. use this function
Hej Alvion. Jeg har prøvet at ændre \\n til \\r\\n, men der er ingen forskel, så det er ikke det; desværre. Men tak for svaret.
Ghanic. Jeg har endnu ikke testet sendmail, men hvis det er et ekstra program til Linux, så tror jeg, at jeg får problemer pt. da skolens server - naturligvis - køres restriktivt.
Jeg var midt i et projekt, hvor det var essentielt at ændre Return-Path. Jeg fik i stedet adgang til mit studiesteds returmails, så jeg undgik det.
Jeg har derfor heller ikke testet, om din løsning virker på en server, hvor man ikke er trusted user, men det skal ikke komme dig til last. Du får dine point, og jeg må prøve din løsning engang i sommerferien. Det nemmeste er nu nok bare, at bruge php 4.0.5 - hvilket jeg ikke gør pt, og som sikkert er derfor, at mit script ikke virker.
Tak for svarene
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.