|
| Mailproblem Fra : Ohlzen |
Dato : 23-06-04 02:44 |
|
Hej NG,
Jeg er totalt ny i php, men skal nok få det lært...
Jeg har et script som sender en e-mail fra min hjemmeside, og det
fungerer som det skal, men den e-mail jeg modtager kunne jeg godt
tænke mig så lidt anderledes ud.
Koden er som følger (her kun vist det det drejer sig om):
<?
if((isset($_POST['navn'])) && (isset($_POST['email'])) &&
(isset($_POST['emne'])) && (isset($_POST['besked']))){
mail("min@email.dk", $_POST['emne'] ,
$_POST['navn'].
$_POST['adresse'].
$_POST['postnr'].
$_POST['by'].
$_POST['Telefon_dag'].
$_POST['Telefon_aften'].
"\n\n- har skrevet følgende besked:\n\n".$_POST['besked'] ,
"From: ".$_POST['email']);
echo "Tak for din henvendelse<br><br>Vi vender snarest<br>muligt
tilbage...";
} else {
?>
Når jeg modtager ovenstående e-mail, står afsenders data i een
lang linie uden mellemrum eller noget som helst
(f.eks.: Jens JensenSøndergade 215000OdenseC1234567876543210)
- jeg ville gerne ha' at der er linieskift mellem hvert
"$_POST['Telefon_aften']."
(F.eks.:
Jens Jensen
Søndergade 21
5000 Odense C
12345678
76543210)
Er der mon en som forstår mit ønske - og kan hjælpe??
På forhånd tak
\Ohlzen
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Bertel Lund Hansen (23-06-2004)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 23-06-04 06:30 |
|
Ohlzen skrev:
>Jeg har et script som sender en e-mail fra min hjemmeside, og det
>fungerer som det skal, men den e-mail jeg modtager kunne jeg godt
>tænke mig så lidt anderledes ud.
Du skal bruge "\n" som er koden for linjeskift. Den virker kun i
dobbelte anførselstegn.
>Koden er som følger (her kun vist det det drejer sig om):
>if((isset($_POST['navn'])) && (isset($_POST['email'])) &&
>(isset($_POST['emne'])) && (isset($_POST['besked']))){
Ryd lidt op i parenteserne:
if (isset($_POST['navn']) && isset($_POST['email']) &&
isset($_POST['emne']) && isset($_POST['besked'])) {
mail("min@email.dk", $_POST['emne'] ,
$_POST['navn']."\n".
$_POST['adresse']."\n".
$_POST['postnr']."\n".
$_POST['by']."\n".
$_POST['Telefon_dag']."\n".
$_POST['Telefon_aften']."\n".
"\n\n- har skrevet følgende besked:\n\n".$_POST['besked']."\n" ,
"From: ".$_POST['email']);
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Jeppe Uhd (23-06-2004)
| Kommentar Fra : Jeppe Uhd |
Dato : 23-06-04 08:06 |
|
Bertel Lund Hansen wrote:
> Ohlzen skrev:
>
>> Jeg har et script som sender en e-mail fra min hjemmeside, og det
>> fungerer som det skal, men den e-mail jeg modtager kunne jeg godt
>> tænke mig så lidt anderledes ud.
>
> Du skal bruge "\n" som er koden for linjeskift. Den virker kun i
> dobbelte anførselstegn.
Delvist korrekt... Man skal bruge "\r\n" (Carriage return + linefeed) og
ikke "kun" "\n".
--
MVH Jeppe Uhd - NX http://nx.dk
Webhosting for nørder og andet godtfolk
| |
Bertel Lund Hansen (23-06-2004)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 23-06-04 08:23 |
|
Jeppe Uhd skrev:
>Delvist korrekt... Man skal bruge "\r\n" (Carriage return + linefeed) og
>ikke "kun" "\n".
Prøv at kikke på http://fiduso.dk/?page=indmeldelse ... øh, nå nej, man kan
jo kun se HTML'en, men der er kun brugt "\n".
En del af koden ser sådan ud:
else {
if (strcmp($show,'Ja')==0) $mailcontent.=
"<tr><td align=\"right\">$numb</td><td><a class='ekstern' href='mailto:$email'>$name</a></td>\n";
else $mailcontent.=
"<tr><td align='right'>$numb</td><td>$name</td>\n";
$mailcontent.="\t<td>$born</td><td>$living</td><td>$year</td>\n";
if ($home>'') $mailcontent.="\t<td><a class='ekstern' href='$home'>Ja</a></td></tr>\n";
else $mailcontent.="\t<td> </td></tr>\n";
$subject="Medlemskab for $name";
}
Det giver følgende udseende i den mail jeg modtager:
<tr><td align="right">1</td><td><a class='ekstern' href='mailto:nospamius@lundhansen.dk'>Bertel Lund Hansen</a></td>
<td>Århus</td><td>Horsens</td><td>1948</td>
<td> </td></tr>
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Kim Andersen (23-06-2004)
| Kommentar Fra : Kim Andersen |
Dato : 23-06-04 09:16 |
|
> >Delvist korrekt... Man skal bruge "\r\n" (Carriage return + linefeed) og
> >ikke "kun" "\n".
>
> Prøv at kikke på http://fiduso.dk/?page=indmeldelse ... øh, nå nej, man
kan
> jo kun se HTML'en, men der er kun brugt "\n".
Ohlzen sender jo en email i plain-text og ikke som en html email, så det er
i dit eksempel.
Så der for "\r\n"
/Kim
| |
Bertel Lund Hansen (23-06-2004)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 23-06-04 09:50 |
|
Kim Andersen skrev:
>Ohlzen sender jo en email i plain-text
Det gør jeg også. Den viste kode er den jeg får i en tekstmail.
Den skal bare bruges til at indsætte i en HTML-side.
>Så der for "\r\n"
Det er ikke nødvendigt.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Tonni Aagesen (23-06-2004)
| Kommentar Fra : Tonni Aagesen |
Dato : 23-06-04 10:22 |
|
Bertel Lund Hansen wrote:
>>Så der for "\r\n"
>
> Det er ikke nødvendigt.
Hvis man interesserer sig kompabilitet... så er det.
Mvh
Tonni
| |
Jeppe Uhd (23-06-2004)
| Kommentar Fra : Jeppe Uhd |
Dato : 23-06-04 10:13 |
|
Bertel Lund Hansen wrote:
> Kim Andersen skrev:
>
>> Ohlzen sender jo en email i plain-text
>
> Det gør jeg også. Den viste kode er den jeg får i en tekstmail.
> Den skal bare bruges til at indsætte i en HTML-side.
>
>> Så der for "\r\n"
>
> Det er ikke nødvendigt.
Men visse mailsystemer fatter det ikke hvis du ikke bruger "\r\n"... At du
så er heldig med dit...
--
MVH Jeppe Uhd - NX http://nx.dk
Webhosting for nørder og andet godtfolk
| |
Bertel Lund Hansen (23-06-2004)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 23-06-04 10:30 |
| | |
Kim Emax (23-06-2004)
| Kommentar Fra : Kim Emax |
Dato : 23-06-04 10:20 |
|
Bertel Lund Hansen wrote:
>> Så der for "\r\n"
>
> Det er ikke nødvendigt.
på unix, ja, på Windows, nej, der er \r nødvendigt.
--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk
| |
Peter Brodersen (23-06-2004)
| Kommentar Fra : Peter Brodersen |
Dato : 23-06-04 19:11 |
|
On Wed, 23 Jun 2004 11:20:03 +0200, "Kim Emax"
<newsgroup@remove-emax.dk> wrote:
>>> Så der for "\r\n"
>>
>> Det er ikke nødvendigt.
>
>på unix, ja, på Windows, nej, der er \r nødvendigt.
Hvorfor overhovedet gå ud og udfordre standarderne? Det burde ikke
have noget at gøre med hvordan, linjer termineres på forskellige
operativsystemer, men hvad standarderne foreskriver.
Givet, vi har et lag imellem at snakke direkte med SMTP-serveren, men
der er stadigvæk ingen grund til at gå ud i risikozonen.
For stort set samtlige ordinære protokoller er CRLF linje- eller
kommandoterminator. Det gælder en lang række standarder, og har intet
at gøre med forskellen mellem Unix eller Windows. Desværre er der vist
en generel sammenblanding af en lang række faktorer, der fejlagtigt
ender op i en spøjs konklusion i stil med at "Unix er mere
Internet-compliant end Windows, så derfor må en Unix-egenskab også
kunne tilskrive en Internet-standard".
Et par udpluk fra diverse RFC'er for SMTP, HTTP, POP3, IMAP4, FTP,
NNTP viser, at der konsekvent bruges CRLF:
RFC2821 (SMTP):
==
2.3.7 Lines
SMTP commands and, unless altered by a service extension, message
data, are transmitted in "lines". Lines consist of zero or more data
characters terminated by the sequence ASCII character "CR" (hex value
0D) followed immediately by ASCII character "LF" (hex value 0A).
This termination sequence is denoted as <CRLF> in this document.
Conforming implementations MUST NOT recognize or generate any other
character or character sequence as a line terminator. Limits MAY be
imposed on line lengths by servers (see section 4.5.3).
In addition, the appearance of "bare" "CR" or "LF" characters in text
(i.e., either without the other) has a long history of causing
problems in mail implementations and applications that use the mail
system as a tool. SMTP client implementations MUST NOT transmit
these characters except when they are intended as line terminators
and then MUST, as indicated above, transmit them only as a <CRLF>
sequence.
==
RFC2616 (HTTP):
==
2.2 Basic Rules
[..]
HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
protocol elements except the entity-body (see appendix 19.3 for
tolerant applications). The end-of-line marker within an entity-body
is defined by its associated media type, as described in section 3.7.
==
RFC1939 (POP3):
==
3. Basic Operation
[..]
HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
protocol elements except the entity-body (see appendix 19.3 for
tolerant applications). The end-of-line marker within an entity-body
is defined by its associated media type, as described in section 3.7.
==
RFC2060 (IMAP4):
==
2.2. Commands and Responses
[..]
All interactions transmitted by client and server are in the form of
lines; that is, strings that end with a CRLF.
==
RFC959 (FTP):
==
5.3. COMMANDS
[..]
The argument field consists of a variable length character string
ending with the character sequence <CRLF>
==
RFC977 (NNTP), 2.3:
==
2.3. Commands
[..]
Each command line must be terminated by a CR-LF (Carriage Return -
Line Feed) pair.
==
--
- Peter Brodersen
Ugens sprogtip: underholdsbidrag (og ikke underholdningsbidrag)
| |
Ohlzen (23-06-2004)
| Kommentar Fra : Ohlzen |
Dato : 23-06-04 11:40 |
|
Bertel Lund Hansen wrote in
dk.edb.internet.webdesign.serverside.php:
> Kim Andersen skrev:
>
> >Ohlzen sender jo en email i plain-text
>
> Det gør jeg også. Den viste kode er den jeg får i en tekstmail.
> Den skal bare bruges til at indsætte i en HTML-side.
>
> >Så der for "\r\n"
>
> Det er ikke nødvendigt.
>
Det ER altså nødvendigt i mit tilfælde.
Prøvede KUN med "\n" men uden held, så rettede jeg til "\r\n", og
nu fungerer det som det skal...
\Ohlzen
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Kim Emax (23-06-2004)
| Kommentar Fra : Kim Emax |
Dato : 23-06-04 14:51 |
|
Ohlzen wrote:
> Det ER altså nødvendigt i mit tilfælde.
>
> Prøvede KUN med "\n" men uden held, så rettede jeg til "\r\n", og
> nu fungerer det som det skal...
Du kører på en windows server, ik?
--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk
| |
Ohlzen (24-06-2004)
| Kommentar Fra : Ohlzen |
Dato : 24-06-04 06:21 |
|
Kim Emax wrote in dk.edb.internet.webdesign.serverside.php:
>
> Du kører på en windows server, ik?
>
Det ved jeg ærlig talt ikke (hmm!) Mit problem er hostet på 1go.dk...
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Kim Emax (24-06-2004)
| Kommentar Fra : Kim Emax |
Dato : 24-06-04 10:47 |
|
Ohlzen wrote:
>> Du kører på en windows server, ik?
>>
> Det ved jeg ærlig talt ikke (hmm!) Mit problem er hostet på
> 1go.dk...
print phpinfo();
er din ven, her kan du se, hvilket OS serveren kører.
--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk
| |
Ohlzen (23-06-2004)
| Kommentar Fra : Ohlzen |
Dato : 23-06-04 08:26 |
|
>
> Man skal bruge "\r\n" (Carriage return + linefeed) og > ikke "kun" "\n".
>
> --
> MVH Jeppe Uhd - NX http://nx.dk
> Webhosting for nørder og andet godtfolk
>
>
Jeg siger jer begge mange tak for hjælpen
\Ohlzen - som stadig sidder og smiler
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
|
|