/ 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
Headers med mail();
Fra : Bo Dudek


Dato : 21-10-03 17:33

Hejsa

Jeg har lidt problemer med et script, der afsender en mail. En del af
scriptet ser ud som følger:

$modtager="foo@foo.dk";
$emne="Emnet er foo";
$headers = "MIME-Version: 1.0\r\n";
$headers. = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers. = "From: www.foo.dk <info@foo.dk>\r\n";
$tekst = "her er der en tekst";
mail($modtager, $emne, $tekst, $headers);

Hvis jeg kører ovenstående på serveren (er vistnok en e-smith), så
bliver der ikke afsendt noget. Hvis jeg derimod drøner denne her
afsted:

$modtager="foo@foo.dk";
$emne="Emnet er foo";
$headers = "MIME-Version: 1.0\r\n";
$tekst = "her er der en tekst";
mail($modtager, $emne, $tekst, $headers);

- så BLIVER der afsendt en mail. Jeg har forsøgt mig frem med at
skrive alle headers i samme linie, men den æder den heller ikke.

Nogen forslag?

Mvh
Bo Dudek
www.bodudek.dk


 
 
Jacob Atzen (21-10-2003)
Kommentar
Fra : Jacob Atzen


Dato : 21-10-03 18:00

Bo Dudek <bo@FJERNbodudek.dk> writes:

> $modtager="foo@foo.dk";
> $emne="Emnet er foo";
> $headers = "MIME-Version: 1.0\r\n";
> $headers. = "Content-type: text/html; charset=iso-8859-1\r\n";
> $headers. = "From: www.foo.dk <info@foo.dk>\r\n";
> $tekst = "her er der en tekst";
> mail($modtager, $emne, $tekst, $headers);

[snip]
> Nogen forslag?

Lad være med at bruge \r, hvis det er en Un*x server.
Brug .= i stedet for . = når du tildeler flere linier til en
header for at undgå parsefejl.

--
Med venlig hilsen
- Jacob Atzen

Bo Dudek (21-10-2003)
Kommentar
Fra : Bo Dudek


Dato : 21-10-03 19:11

[...]

>Lad være med at bruge \r, hvis det er en Un*x server.
>Brug .= i stedet for . = når du tildeler flere linier til en
>header for at undgå parsefejl.

jamen altså, det hjalp :)

Mvh
Bo Dudek
www.bodudek.dk


Peter Brodersen (22-10-2003)
Kommentar
Fra : Peter Brodersen


Dato : 22-10-03 00:01

On 21 Oct 2003 19:00:11 +0200, Jacob Atzen <jacob@aub.dk> wrote:

>Lad være med at bruge \r, hvis det er en Un*x server.

Det synes jeg ikke er et godt råd. Jeg synes, man skal gå ud fra at
headers er RFC2822-compliant.

==
[..] A line is a series of characters that is delimited with the two
characters carriage-return and line-feed; that is, the carriage return
(CR) character (ASCII value 13) followed immediately by the line feed
(LF) character (ASCII value 10). (The carriage-return/line-feed pair
is usually written in this document as "CRLF".)

A message consists of header fields (collectively called "the header
of the message") followed, optionally, by a body. The header is a
sequence of lines of characters with special syntax as defined in
this standard. [..]
==

PHP-manualen nævner også:

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

Hvis man falder over en mailserver, der ikke kan finde ud af CRLF
(\r\n), så er man alligevel bedre tjent med at holde snitterne langt
fra den. At begynde at rette kode fra "\r\n" (som altså skal virke)
til "\n" (som måske kan virke) er ikke et skridt i den rigtige
retning.

--
- Peter Brodersen

Ugens sprogtip: bekræfte (og ikke bekræftige)

Jacob Atzen (22-10-2003)
Kommentar
Fra : Jacob Atzen


Dato : 22-10-03 09:07

Peter Brodersen <usenet@ter.dk> writes:

> Det synes jeg ikke er et godt råd. Jeg synes, man skal gå ud fra at
> headers er RFC2822-compliant.
>
> ==
> [..] A line is a series of characters that is delimited with the two
> characters carriage-return and line-feed; that is, the carriage return
> (CR) character (ASCII value 13) followed immediately by the line feed
> (LF) character (ASCII value 10). (The carriage-return/line-feed pair
> is usually written in this document as "CRLF".)
>
> A message consists of header fields (collectively called "the header
> of the message") followed, optionally, by a body. The header is a
> sequence of lines of characters with special syntax as defined in
> this standard. [..]
> ==
>
> PHP-manualen nævner også:
>
> "Note: You must use \r\n to separate headers, although some Unix mail
> transfer agents may work with just a single newline (\n)."
>
> Hvis man falder over en mailserver, der ikke kan finde ud af CRLF
> (\r\n), så er man alligevel bedre tjent med at holde snitterne langt
> fra den. At begynde at rette kode fra "\r\n" (som altså skal virke)
> til "\n" (som måske kan virke) er ikke et skridt i den rigtige
> retning.

Så blev jeg også klogere i dag, tak

--
Med venlig hilsen
- Jacob Atzen

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

Månedens bedste
Årets bedste
Sidste års bedste