Avatar billede Slettet bruger
20. april 2007 - 18:44 Der er 10 kommentarer og
1 løsning

Levering af php mail til hotmail

Jeg bruger nedenstående script til, at udsende aktiveringskoder til nye brugere på mine hjemmesider.
Det har i et godt stykke tid virket til alle slags konti, men nu virker det ikke længere til de brugere der har hotmail.
Det er stoppet med at virke uden varsel, intet i koden er lavet om, og det er fra alle sider jeg har.
Jeg har derfor tjekket, om hotmail eventuelt skulle have blokeret serveren, men det er ikke tilfældet, så vidt jeg kan se.
Alle mails lægges i kø til levering, men de leveres aldrig.

SÅ nu er spørgsmålet bare, er det noget i min kode der gør, at hotmail blokerer for de mails jeg sender ud?
De bliver ikke markeret som SPAM og lagt i dertilhørende mappe, og det gør ingen forskel at fortælle hotmail at domænet de sendes ud fra er et sikkert domæne.
Jeg håber virkelig at nogen har en løsning på mit problem, da det er ret vigtigt, at alle kan få deres aktiveringskoder, så de kan bruge deres bruger. Og det er vigtigt, at mailen de indtaster bliver valideret.
Så spørgsmålet er sådan set, hvad skal der gøres og hvordan, for at sikre, at levering af emails udsendt med mail funktionen i PHP sker?

Og her er scriptet jeg bruger, som i øvrigt er fundet et sted her på eksperten, hvis jeg ikke husker galt:

<?
$boundary = uniqid("");

$header = array();
$header[] = "MIME-Version: 1.0";
$header[] = "Content-Type: multipart/alternative; boundary=\"$boundary\"";
$header[] = "Content-Transfer-Encoding: 7bit";
$header[] = "FROM: Fra Side <email@email.dk>";

$plaintext = 'Her er den rene tekstversion af mailen der udsendes'."";

$htmltext  = 'Her er html versionen af mailen der udsendes'."";

$body = array();
$body[] = "--$boundary";
$body[] = "Content-Type: text/plain; charset=\"utf-8\"";
$body[] = "Content-Transfer-Encoding: 7bit";
$body[] = '';
$body[] = $plaintext;
$body[] = "--$boundary";
$body[] = "Content-Type: text/html; charset=\"utf-8\"";
$body[] = "Content-Transfer-Encoding: 7bit";
$body[] = '';
$body[] = $htmltext;

$recipient = $emailderskalsendestil;
$subject = $emailensemne;

mail($recipient, $subject, join("\n",$body),join("\n",$header));
?>
Avatar billede jakobdo Ekspert
20. april 2007 - 20:34 #1
Dette kode er fundet på http://www.php.net/manual/en/function.mail.php

$boundary = md5(uniqid(time()));

$headers  = 'From: ' . $from . "\n";
$headers .= 'To: ' . $to . "\n";
$headers .= 'Return-Path: ' . $from . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '"' . "\n\n";
$headers .= $body_simple . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/plain; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $body_plain . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/HTML; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $body_html . "\n";
$headers .= '--' . $boundary . "--\n";

$mailOk=mail('', $subject,'', $headers);

De 2 forskelle er charset og encoding 8bit.
Avatar billede Slettet bruger
21. april 2007 - 01:56 #2
Det gjorde desværre ikke nogen forskel.
Avatar billede jakobdo Ekspert
21. april 2007 - 08:30 #3
Når du skriver emails bliver lagt i kø, er det på afsenders server?
Eller er det hotmail der siger de er queued på deres server?

Og det kan ikke skyldes at folk har sat bulk funktionerne forskelligt op?
Avatar billede Slettet bruger
21. april 2007 - 09:44 #4
Jeg har lige prøvet at få tilsendt en mail igen og følgende før jeg i min log.

Apr 21 09:41:07 vserver11 postfix/smtp[21720]: 8E4BE9B0C110: to=<diagon-alley.dk@hotmail.com>, relay=mx4.hotmail.com[65.54.244.104], delay=3, status=sent (250  <20070421074103.B88A68B0C024@vserver11.devteam.dk> Queued mail for delivery).

diagon-alley.dk@hotmail.com er en mail jeg har oprettet hos hotmail efter jeg fandt ud af, at folk pludselig ikke fik de mails der blev sendt ud.

Jeg har sat serveren som trusted site/domain, og har sat afsender domænet som trusted ligeså.
Den bliver ikke engang leveret til BULK bakken, eller uønsket email, som det også hedder.
Avatar billede jakobdo Ekspert
21. april 2007 - 21:58 #5
Ja den log viser jo godt nok emailen bliver accepteret korrekt hos Hotmail.
Sjovt du nævner det, for jeg sender faktisk også emails fra min server, og en hotmail bruger siger faktisk også han ikke modtager dem, men min log viser også fint nok de er modtaget hos hotmail.
Avatar billede Slettet bruger
23. april 2007 - 20:54 #6
Der er stadig ingen forbedring her, så håber stadig på, at en eller anden har en løsning på dette problem, som nu er opstået.
Avatar billede henrikdamdk Nybegynder
30. april 2007 - 17:40 #7
Jeg har fuldstændig samme problem som ssnielsen beskrev.
Efter en del søgning fandt jeg frem til at det måske kan skyldes, at man ikke har opsat nogen "SPF record" på sin DNS server. Men hvad der lige præcist er og hvordan det opsættes (og til hvad) er jeg ikke sikker på.
Det lader til at der er mange, der har haft problemer med Hotmail de sidste par uger...

Håber nogen kender en effektiv løsning?
Avatar billede jakobdo Ekspert
30. april 2007 - 18:03 #8
Avatar billede Slettet bruger
30. april 2007 - 19:18 #9
Okay, det kan være løsningen, men så er spørgsmålet bare. Hvad sker der, hvis jeg sætter det op, skal jeg så til at bede alle brugere der har emailadresse på domænet om at skulle give mig deres IP adresse, for ellers kan de ikke sende?
I det hele taget, vil opsætningen af SPF berøre normale email brugere, som har email på det angivne domæne?
Avatar billede Slettet bruger
15. juli 2007 - 14:34 #10
Problemet har nu løst sig selv.
Jeg vil antage, at det er hotmail der har åbnet op for modtagelse af de afsendte mails igen. Anden grund kan jeg ikke se.
Avatar billede jakobdo Ekspert
15. juli 2007 - 15:27 #11
Jeg har selv leget lidt med afsendelse til hotmail og SPF er faktisk en af de ting hotmail kontrollere.
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