Avatar billede fiil123 Nybegynder
25. januar 2006 - 13:15 Der er 38 kommentarer og
1 løsning

header problemer med mail script

Jeg er ved at lave en mail list scrip, og har store problemer med at få header delen til at fungere:

Kode 1 :
$tekst = $_POST['tekst'];
$subject = $_POST['Subjekt'];
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: " . $_POST['From'] . "<" . $_POST['FromEmail'] . ">";
mail($adresser, $subject, $tekst, $headers);
Hele koden her http://www.kfiil.com/kode1.rar 

Kode 2 :
$tekst = $_POST['tekst'];
$subject = $_POST['Subjekt'];
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "To: " . $_POST['To'];
$headers .= "From: " . $_POST['From'] . "<" . $_POST['FromEmail'] . ">";
mail($adresser, $subject, $tekst, $headers);
Hele koden her http://www.kfiil.com/kode2.rar

Kode 1 virker og sender en mail rundt, men kode 2 gør ikke og sender ikke nogen mail rundt? Nogen der har en ide til hvorfor??

Plus er det bare mig eller er der en timer på serveren(b-one) som begrænser hvor hurtigt efter hinanden man kan senden en mail med PHP?
Avatar billede nielle Nybegynder
25. januar 2006 - 13:26 #1
Prøv med denne:

$tekst = $_POST['tekst'];
$subject = $_POST['Subjekt'];
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "To: " . $_POST['To'] . "\n";
$headers .= "From: " . $_POST['From'] . "<" . $_POST['FromEmail'] . ">";
mail($adresser, $subject, $tekst, $headers);
Avatar billede jakobdo Ekspert
25. januar 2006 - 13:28 #2
Du skal huske \n efter hver header.
B-One køre en begrænsning, så du ikke kan sende mange.
Synes at huske det var noget med 5 hvert interval! (kan dog ikke huske om det var i timen, 10. minut eller?)
Avatar billede fiil123 Nybegynder
25. januar 2006 - 13:32 #3
Hvorfor \n?
Avatar billede nielle Nybegynder
25. januar 2006 - 13:57 #4
\n betyder newline - det skal være et linjeskift efter hver linje i din header.
Avatar billede fiil123 Nybegynder
25. januar 2006 - 14:04 #5
Jeg har lige haft en længere snak med b-one og ja de har begrænsning på deres server. Men dette skulle kunne undgået hvis domænet indgå i "from" men har påstod supporteren at den måde from bliver sendt på er forkert.
Avatar billede fiil123 Nybegynder
25. januar 2006 - 14:05 #6
Og det kode er prøvet og der kommer ikke mail rundt stadig desværre
Avatar billede nielle Nybegynder
25. januar 2006 - 14:44 #7
Hmmm... From-delen er jo ens i de to tilfælde (hvoraf det ene jo altså virker) - sagde supporteren ikke mere end at det var "forkert"?
Avatar billede fiil123 Nybegynder
25. januar 2006 - 14:48 #8
nej for de hjælper ikke med scripts osv... og ja det var jo også det jeg forsøgte at forklare ham... jeg fik dette link http://www.testdomainet.dk/info.php
Avatar billede elskermad.dk Nybegynder
25. januar 2006 - 15:10 #9
måske \n\r i stedet for kun \n - Det er enten en windows eller linux/unix server der skal bruge det...
Avatar billede fireflashx Nybegynder
25. januar 2006 - 15:12 #10
Det anbefales at du bruger "\r\n" til at adskille de forskellige header-elementer, som også kan ses i PHP manualen.

Prøv:
$headers = "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: " . $_POST['To'] . "\r\n";
$headers .= "From: " . $_POST['From'] . "<" . $_POST['FromEmail'] . ">";

Evt. udskift den sidste linie med:
$header .= "From: " . $_POST['FromEmail'];

hvor domænenavnet så selvfølgelig skal indgå som "noget@domænenavn.xx" for at undgå begrænsningen fra b-one.
Avatar billede jakobdo Ekspert
25. januar 2006 - 15:14 #11
Vær opmærksom på:
You must use \r\n to separate headers, although some Unix mail transfer agents replace \n by \r\n automatically (leads to doubling \r if \r\n is used).
Avatar billede fiil123 Nybegynder
25. januar 2006 - 15:25 #12
$tekst = $_POST['tekst'];
$subject = $_POST['Subjekt'];
$headers = "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: " . $_POST['To'] . "\r\n";
$headers .= "From: <kenneth@kfiil.com";
mail($adresser, $subject, $tekst, $headers);

har jeg skrevet nu... stadig ingen ting
Avatar billede jakobdo Ekspert
25. januar 2006 - 15:31 #13
Har du evt prøvet at kigge på dette eksempel:

<?php
/* recipients */
$to  = "mary@example.com" . ", " ; // note the comma
$to .= "kelly@example.com";

/* subject */
$subject = "Birthday Reminders for August";

/* message */
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

/* To send HTML mail, you can set the Content-type header. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* and now mail it */
mail($to, $subject, $message, $headers);
?>


Og PS: du mangler > efter din email.
Avatar billede fiil123 Nybegynder
25. januar 2006 - 15:31 #14
Har lavet den her test:

<html>
<head>
<title>TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?PHP
$adresser = "kenneth@kfiil.com,fiil123@hotmail.com";
$tekst = "Indhold";
$subject = "Emne";
$headers = "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: Modtager\r\n";
$headers .= "From: <kenneth@kfiil.com";
mail($adresser, $subject, $tekst, $headers);
?>
</body>
</html>

Virkede heller ikke
Avatar billede fiil123 Nybegynder
25. januar 2006 - 15:35 #15
ja det har jeg
Avatar billede fiil123 Nybegynder
25. januar 2006 - 15:39 #16
<?php
/* recipients */
$to  = "kenneth@kfiil.com" . ", " ; // note the comma
$to .= "fiil123@hotmail.com";

/* subject */
$subject = "Birthday Reminders for August";

/* message */
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

/* To send HTML mail, you can set the Content-type header. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "To: modtager\r\n";
$headers .= "From: Birthday Reminder <kenneth@kfiil.com>\r\n";


/* and now mail it */
mail($to, $subject, $message, $headers);
?>

Virker heller ikke
Avatar billede nielle Nybegynder
25. januar 2006 - 19:07 #17
Du kan ikke bruge:

$headers .= "To: modtager\r\n";

- og i øvrigt tror jeg at løsningen er at der også er \n på From-linjen.
Avatar billede fiil123 Nybegynder
25. januar 2006 - 20:59 #18
Kan du uddybe lidt?
Avatar billede nielle Nybegynder
25. januar 2006 - 21:20 #19
Dit eksempel #2 - men tilrettet:

$tekst = $_POST['tekst'];
$subject = $_POST['Subjekt'];
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "To: " . $_POST['To'] . "\n";
$headers .= "From: " . $_POST['From'] . "<" . $_POST['FromEmail'] . ">\n";
mail($adresser, $subject, $tekst, $headers);
Avatar billede nielle Nybegynder
25. januar 2006 - 21:21 #20
Eller måske endda med hele 2 \n efter From-linjen:

$tekst = $_POST['tekst'];
$subject = $_POST['Subjekt'];
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "To: " . $_POST['To'] . "\n";
$headers .= "From: " . $_POST['From'] . "<" . $_POST['FromEmail'] . ">\n\n";
mail($adresser, $subject, $tekst, $headers);
Avatar billede fiil123 Nybegynder
26. januar 2006 - 15:23 #21
jeg test sender med det her nu og det virker:
<?PHP
$tekst = "
<html>
<head>
<title>Test Mail</title>
</head>
<body>
<p>TEST MAIL -- > Mailing list af Kfiil.com</p>
<table>
<tr>
<th>Test</th><th>Test</th><th>Test</th><th>Test</th>
</tr>
</table>
</body>
</html>
";
$adresser = "kenneth@kfiil.com, fiil123@hotmail.com";
$subject = "Emne";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Modtager <kenneth@kfiil.com>' . "\r\n";
$headers .= 'From: Kenneth Fiil <kenneth@kfiil.com>' . "\r\n";

mail($adresser, $subject, $tekst, $headers);

echo "Email'en er sendt";
?>

Men i modtager skriver den stadig begge emails
Avatar billede jakobdo Ekspert
26. januar 2006 - 15:43 #22
Hvad mener du med modtager?
Avatar billede fiil123 Nybegynder
26. januar 2006 - 15:46 #23
Jeg troede at jeg med
$headers .= 'To: Modtager <kenneth@kfiil.com>' . "\r\n";
Gjorde sådan er i f.eks outlook at dette var det eneste der blev oplyst og ikke alle mail adresser
Avatar billede jakobdo Ekspert
26. januar 2006 - 15:51 #24
Hvis de ikke må se de andre mailadresser, så smid dem som BCC
Avatar billede fiil123 Nybegynder
26. januar 2006 - 15:54 #25
Nu er det der jo bare et lille test script... det skal anvende til en mail liste...
Avatar billede jakobdo Ekspert
26. januar 2006 - 15:58 #26
Men ellers vil flere TO kunne se hinanden!
Avatar billede fiil123 Nybegynder
26. januar 2006 - 16:00 #27
er der ikke en måde hvor man helt kan overskrive det og der bare står: "Medlem af maillisten" feks?
Avatar billede jakobdo Ekspert
26. januar 2006 - 16:15 #28
Jo eller nej!
Du har jo flere adresser i:
$adresser = "kenneth@kfiil.com, fiil123@hotmail.com";

Du kunne skyde mail() af for hver email, så kan du sende dem som TO og de vil kun se sig selv, da emailen kun er sendt til en bruger.
Avatar billede fiil123 Nybegynder
26. januar 2006 - 16:17 #29
så er det vel bare at smide mail() ind i sin while løkke...
Avatar billede jakobdo Ekspert
26. januar 2006 - 16:25 #30
Jepper! :o)
Avatar billede fiil123 Nybegynder
26. januar 2006 - 16:31 #31
Nå men har ikke rigtigt styr på hvem der faktisk har svaret på mit spørgsmål... men smid da et svar ALLE sammen
Avatar billede jakobdo Ekspert
26. januar 2006 - 17:42 #32
Svar!
Avatar billede fiil123 Nybegynder
26. januar 2006 - 17:47 #33
Først til mølle
Avatar billede jakobdo Ekspert
26. januar 2006 - 17:55 #34
Nielle, vil du have nogle point?
Avatar billede jakobdo Ekspert
26. januar 2006 - 17:55 #35
Jeg takker ihf for point!
Avatar billede nielle Nybegynder
26. januar 2006 - 18:37 #36
Jeg siger da ikke nej tak - men jeg er da også i tvivl om hvorvidt fiil123 egentligt har fået løst sit oprindelige spørgsmål og hvad det lige vsr som slog hovedet på sømmet?
Avatar billede jakobdo Ekspert
26. januar 2006 - 18:44 #37
Avatar billede fiil123 Nybegynder
26. januar 2006 - 18:49 #38
Jamen problemet blev på en eller anden måde løst ved bare ikke hvorfor lige det her kode  virker og ikke det andet:
$tekst = $_POST['tekst'];
$subject = $subject = $_POST['Subjekt'];
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "To: " . $row['email'] . "\r\n";
$headers .= "From: " . $_POST['From'] . "<" . $_POST['FromEmail'] . ">" . "\r\n";;
mail($adresser, $subject, $tekst, $headers);

Og jeg skal havde $adresser med selvom den ikke bliver brugt til noget... men hvis jeg fjerner den så sender den ikke en email
Avatar billede nielle Nybegynder
26. januar 2006 - 18:53 #39
Med det eksempel har du jo også en newline i den sidste linje i mail-headeren (From-linjen). Det havde du ikke før, og jeg er rimeligt sikker (94%) at det er påkrævet.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester