26. oktober 2004 - 09:04Der er
23 kommentarer og 1 løsning
Få mail header i internet header
Hej.
Jeg har lavet en php side der sender en mail til den indtastede email adresse. Det kører på en SuSE 9 og før kørte det på en Red Hat.
Før kom de fleste af nedenstående linie i internet header'en men nu komme de fleste i selve mailen. Hvordan får man dem ind det rigtige sted ? Linierne ser sådan ud: $header = "From: \"".addslashes($sender_name)."\" <".$sender_email.">\r\n"; $header .= "Reply-To: ".$sender_email."\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: text/plain; charset=iso-8859-1\r\n"; $header .= "X-Priority: 1\r\n"; $header .= "X-Mailer: PHP / ".phpversion()."\r\n";
og sendes med denne linie:
mail($email, $subject, $message, $header);
Gode tips søges, så de ikke står i mailen. Det ser tosset ud :-)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
26. oktober 2004 - 09:18#1
Hvis der skulle have sneget sig et linieskift ind i slutningen af $sender_email kunne det være årsagen. SMTP bruger nemlig (lige som HTTP) en blank linie til at adskille headers fra selve indholdet.
Hvis det er det, der er problemet, kan det løses ved at fjerne liniskiftet med chomp($sender_email)
Synes godt om
Slettet bruger
26. oktober 2004 - 09:20#2
Ups. Den hedder ikke chomp men chop eller rtrim (chop er et alias for rtrim), så det skulle have været:
Har prøvet at fjerne disse \r\n i slutningen af linien, det hjalp heller ikke.
Synes godt om
Slettet bruger
26. oktober 2004 - 09:34#5
Jeg mente nu mest i Reply-To-linien, hvor $sender_email netop var det sidste, der blev skrevet inden linieskiftet, sådan at hvis $sender_email sluttede med linieskift, ville der komme to sæt linieskift lige efter hinanden. I From-linien er der et >-tegn bagefter $sender_email, så der ville det ikke skabe problemet.
Jeg har skiftet navn og email adresse ud med tekst.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:10#7
Det er meget mystisk. Når Content-Type er den første header, der "falder igennem" til body, tyder det på, at fejlen sker enten i starten af den, eller i slutningen af den foregående header, og der kan jeg ikke få øje på nogetsomhelst, der skulle kunne frembringe fejl.
Prøv at se på den "rå" mail om der ikke er et linieskift lige før Content-Type.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:29#8
Content er den første linie i mailen, og den står allerøverst, så der er formentlig ikke nogen linieskift før den.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:33#9
Hvis du ser på den rå mail, ser du både headers og body ligesom de ser ud på mailserveren.
Hvis du bruger OE er det vistnok noget med at højreklikke på mailen og derefter vælge Egenskaber->Avanceret->Meddelelseskilde eller noget i den stil.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:34#10
Ok, vi bruger ikke OE, men FirstClass her i huset, men jeg prøver lige at sende til en anden adresse, hvor jeg vistnok ville kunne se det.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:37#11
Så vidt jeg husker kan FirstClass også godt vise en mails kildetekst, men jeg er ikke sikker. Og den funktion er måske ikke med i Web-interfacet til FirstClass. Det er dog _meget_ lang tid siden, jeg har benyttet FirstClass, så min hukommelse kan godt snyde.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:38#12
Min kolega siger at FirstClass ikke er så god til lige at vise en rå mail.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:38#13
Eventuelt, hvis du har en shell-bruger med mailkonto på SuSE-maskinen, kunne du sende dertil. Så kan vi sagten få kilden frem.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:39#14
Jeg havde en OE Express jeg kunne sende til og der er headerne IKKE med i mailen. Underligt
Synes godt om
Slettet bruger
26. oktober 2004 - 10:40#15
Maskinen kører med Postfix og er kun sat op til at sende, og kan ikke modtage mail. Jeg har fuld adgang til den.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:40#16
Prøv at se på kilden alligevel, så vi kan se, om der skulle være noget usædvanligt.
Synes godt om
Slettet bruger
26. oktober 2004 - 10:40#17
Jeg leder efter den rå mail i OE nu, men kan ikke lige finde den :-)
Tjah, så må min konklusion være, at fejlen ikke er i dit script, men i FirstClass-systemet. Hvis du kun sender til FirstClass, kunne du prøve at fjerne MIME-Version-linien og se, om det virker. (og hvis dine mails kun er text/plain burde det også virke fint på andre uden den linie.)
Synes godt om
Slettet bruger
26. oktober 2004 - 10:56#20
Ahemm, du sagde at de linieskift skulle være der. Men nu fjernede jeg alle de der \r\n i slutningen af alle linierne, så kommer der ikke noget med i mailen men de fleste står i en lang linie i internetheaderen. :-)
Underligt.
Synes godt om
Slettet bruger
26. oktober 2004 - 11:03#21
Smid lige et svar, du har jo hjulpet mig med at finde fejlen :-)
Synes godt om
Slettet bruger
26. oktober 2004 - 11:06#22
De skal faktisk være der. Prøv at se om den kan finde ud af f.eks. From-feltet, når de bare står i en lang linie.
Eventuelt kan du eksperimentere med at nøjes med \n som linieskift, og se om det virker bedre.
Synes godt om
Slettet bruger
26. oktober 2004 - 11:17#23
Ok, tak for tips'ene. Jeg eksperimenterer videre :-)
Synes godt om
Slettet bruger
26. oktober 2004 - 13:04#24
Ved kun at bruge \n er det ok. Det står også rigtig og det rigtige sted i FirstClass nu. Tak igen.
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.