Guide och samlade erfarenheter kring PHPs mail()

Almänna diskussioner, tips m.m. om virtualisering

Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jim Westergren » 14 jun 2010, 11:41

Tänkte börja med att säga att jag är helt ny med VPS med Debian och har ingen tidigare erfarenhet, tänkte här samla erfarenheter osv från andra och jag själv rörande PHPs mail() och att undvika få sin e-post klassad som spam. Nu innehåller detta en del frågor från min sida men jag kommer uppdatera senare.

Jag erbjuder ett gratis hemsidesverktyg och för mig och förmodligen många andra är det kritiskt att e-posten inte klassas som spam. Dels skickas aktiverslänk för att verifiera användarens e-post, återställningslänk för att få nytt lösenord och kvitto för betalning. Men jag skickar även ut ett slags nyhetsbrev en gång i månaden till alla användare (cirka 4 tusen idagsläget).

Inför min flytt från Binero till här på Glesys VPS så mailade jag support hur jag skulle göra så att min mail inte skulle klasssas som spam och de hade någon guide eller bra länk att ge. Jag fick direkt ett bra svar från Jonas och kommer återkomma till det.

Steg 1: installera postfix

För att mail() överhuvudtaget ska fungera så krävs det postfix. Så här installerade jag det:

Kod: Markera allt
apt-get install postfix


Jag valde internet site som val (tror jag det hette)

Detta svar fick jag från Jonas:

1. PTR anser jag är viktigast. http://en.wikipedia.org/wiki/Reverse_DNS_lookup
- Att IP-addresen även resolvar till vad din mailserver heter, ställs in via vår kontrollpanel.

Efter att ha frågar om detta fick jag som svar "Jag skulle istället ta samma som er server heter, ex minserver.mindomän.se."

Min kommentar: i min kontrollpanel så stod det: 109-74-0-92-static.serverhotell.net. och detta ändrade jag till JimW1.n.nu.. Eftersom min server heter JimW1 och mindomän är n.nu. Jag vet inte om detta är rätt eftersom när jag kollar på http://www.validmail.org så får jag fram ett fel "Mailserver warning: Reverse PTR found: mx01.trekia.se, Expected: mx01.glesys.se"

2. Rätt avsändaraddress/return-path i mail.
- Om jag läser ditt mail nedan så sätter du (eller din server) www-data@n.nu. Det är ju inte riktigt rätt, eller?
Använder du mail()? Isåfall, läs sista stycket i mitt inlägg här, http://vmforum.se/viewtopic.php?f=10&t=134#p633

Min kommentar: Detta var lätt fixat och jag la helt enkelt in -fsupport@n.nu som en fjärde parameter i min mail().

3. SPF, http://en.wikipedia.org/wiki/Sender_Policy_Framework
- Ett sätt att blockera andra personer att skicka epost med din epostaddress.
Har man detta så blir man bättre klassad hos antispammjukvarorna.
Du sätter alltså ett TXT-record i DNS som kan se ut så här:
"v=spf1 ip4:79.99.4.32/27 -all"

Min kommentar: efter att jag hade lagt in domänen i kontrollpanelen så fanns redan detta fält och det var förinfyllt som v=spf1 include:spf.glesys.se -all och jag ändrade till v=spf1 ip4:109.74.0.92 -all

4. Kontakta stora epostleverantörer och bli vitlistad.

Kommentar: inte påbörjat detta ännu.

Lite mer infomation i ämnet, viewtopic.php?f=10&t=41
--

Från Crazzy på WN:

"Inte bara SPF, annat med att tänka på. Mailservern skall svara att den heter så som du har i ditt MX record. Dessutom ska den ha motsvarande PTR på sitt ip. "

Lite annat som jag tror är viktigt:

- Undvika att nämna ord som är typiska för att hamna i filter
- Göra det enkelt att säga upp sig från fler mails vilket gör att mindre markerar mailet som spam

---

Frågor just nu:

- Har jag satt upp rätt PTR? Tror inte det så vad ska jag skriva?
- Ska return-path vara satt till -fsupport@n.nu även om mailet kommer från ett kontaktformulär från Nisse till Pelle? Exempel: http://www.jim.n.nu/contact
Användarvisningsbild
Jim Westergren
 
Inlägg: 7
Blev medlem: 14 jun 2010, 10:49
Ort: Malmö

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jonas » 14 jun 2010, 15:36

Jim Westergren skrev:- Har jag satt upp rätt PTR? Tror inte det så vad ska jag skriva?


Om du har en MX-pekare som heter mail.doman.se och en A-pekare som heter mail.doman.se så rekommenderar jag aven att PTR-pekaren heter så.

Jim Westergren skrev:- Ska return-path vara satt till -fsupport@n.nu även om mailet kommer från ett kontaktformulär från Nisse till Pelle? Exempel: http://www.jim.n.nu/contact


Det spelar ingen större roll, viktigt är ett epostaddresen finns och inte ser "felkonfigurerad ut" ex apache@doman.se
Mvh
Jonas, Internet Engineer - support@glesys.se - http://glesys.se/
GleSYS Internet Services AB | Box 134 | 311 22 Falkenberg
Användarvisningsbild
Jonas
 
Inlägg: 116
Blev medlem: 17 aug 2009, 15:41
Ort: Stockholm

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jim Westergren » 14 jun 2010, 15:51

Jonas skrev:Om du har en MX-pekare som heter mail.doman.se och en A-pekare som heter mail.doman.se så rekommenderar jag aven att PTR-pekaren heter så.


Om jag tittar på domänen så har jag inte pillat på default värdena som var förinfyllt. Det finns två MX pekare på domänen: 10 mx01.glesys.se. och 20 mx02.glesys.se. ska jag alltså ändra dessa?

Sedan finns det en A pekare med på mail men den pekar mot 79.99.4.40 och inte mitt IP. Är den rätt? Jag kollade who is och den pekar mot mail.trekia.se och ägs av er. Om jag ändrar den mot mot min sajts IP måste det inte finnas något på mail.n.nu?

Som sagt så är jag nybörjare inom detta och just nu hamnar mailen i skräppostmappen :(
Användarvisningsbild
Jim Westergren
 
Inlägg: 7
Blev medlem: 14 jun 2010, 10:49
Ort: Malmö

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jonas » 14 jun 2010, 16:05

Jim Westergren skrev:
Jonas skrev:Om du har en MX-pekare som heter mail.doman.se och en A-pekare som heter mail.doman.se så rekommenderar jag aven att PTR-pekaren heter så.


Om jag tittar på domänen så har jag inte pillat på default värdena som var förinfyllt. Det finns två MX pekare på domänen: 10 mx01.glesys.se. och 20 mx02.glesys.se. ska jag alltså ändra dessa?


Nej, MX-pekarna är bara tillför inkommande mail. Jag hade inte behövt nämna dem alls i mitt inlägg. :oops:

Jim Westergren skrev:Sedan finns det en A pekare med på mail men den pekar mot 79.99.4.40 och inte mitt IP. Är den rätt? Jag kollade who is och den pekar mot mail.trekia.se och ägs av er. Om jag ändrar den mot mot min sajts IP måste det inte finnas något på mail.n.nu?

Som sagt så är jag nybörjare inom detta och just nu hamnar mailen i skräppostmappen :(


Det måste inte vara mail.dindomän.se. Om du vill använda mail.dindomän.se för att hämta mail i vårt mailsystem så ska du inte ändra den.

Du kan istället ha server.dindomän.se och peka A pekaren mot din servers IP-address samt döpa din PTR till server.dindomän.se.
Eller då peka om mail.dindomän.se om du nu inte vill ha den mot vårt mailsystem. Det spelar alltså ingen roll vad du döper din server till. Bara du är konsekvent med A och PTR-pekare.
Mvh
Jonas, Internet Engineer - support@glesys.se - http://glesys.se/
GleSYS Internet Services AB | Box 134 | 311 22 Falkenberg
Användarvisningsbild
Jonas
 
Inlägg: 116
Blev medlem: 17 aug 2009, 15:41
Ort: Stockholm

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jim Westergren » 14 jun 2010, 18:24

Höll nästan på att slita mitt hår varför inte mail kom fram men jag kom sedan fram till att det endast berodde på de fall när min sajt domän.nu själv mailade till support@domän.nu då funkade det inte. När jag ändrade return-path fick jag det studsade mailet och lite info:

<support@domän.nu>: unknown user: "support"

Final-Recipient: rfc822; support@domän.nu
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: "support"

support@domän.nu finns skapas som ALIAS i kontrollpanelen till min gmail. Jag ändrade att den mailar direkt till min gmail istället så det funkar nu.

Men hur löser jag detta ovan? Ska jag lägga till support som en user någonstans i någon config fil for postifx?
Användarvisningsbild
Jim Westergren
 
Inlägg: 7
Blev medlem: 14 jun 2010, 10:49
Ort: Malmö

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jonas » 15 jun 2010, 06:08

Om du inte vill att din mailserver ska hantera mail för domän.nu så bör du ta bort den ur "mydestination" i /etc/postfix/main.cf. Och sedan köra "postfix reload"
Mvh
Jonas, Internet Engineer - support@glesys.se - http://glesys.se/
GleSYS Internet Services AB | Box 134 | 311 22 Falkenberg
Användarvisningsbild
Jonas
 
Inlägg: 116
Blev medlem: 17 aug 2009, 15:41
Ort: Stockholm

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jim Westergren » 15 jun 2010, 07:44

Jonas skrev:Om du inte vill att din mailserver ska hantera mail för domän.nu så bör du ta bort den ur "mydestination" i /etc/postfix/main.cf. Och sedan köra "postfix reload"


Tack! Det löste det!
Användarvisningsbild
Jim Westergren
 
Inlägg: 7
Blev medlem: 14 jun 2010, 10:49
Ort: Malmö

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jim Westergren » 15 jun 2010, 12:50

Nästa problem: Invalid HELO

Jag märkte att en del mails studsade pga invalid HELO med hänvisning till RFC2821 4.1.1.1

Jag googlade lite och hittade denna http://rackerhacker.com/2006/12/26/fixi ... lid-helos/

Så dels körde jag hostname mail.n.nu men även ändrade myhostname = JimW1 till myhostname = mail.n.nu i etc/postfix/main.cf

Jag fortsätter uppdatera ...
Användarvisningsbild
Jim Westergren
 
Inlägg: 7
Blev medlem: 14 jun 2010, 10:49
Ort: Malmö

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jonas » 16 jun 2010, 09:40

mail.n.nu pekar mot vårt mailsystem. Peka om den mot din egen server blir det troligen lite bättre. ;)
Mvh
Jonas, Internet Engineer - support@glesys.se - http://glesys.se/
GleSYS Internet Services AB | Box 134 | 311 22 Falkenberg
Användarvisningsbild
Jonas
 
Inlägg: 116
Blev medlem: 17 aug 2009, 15:41
Ort: Stockholm

Re: Guide och samlade erfarenheter kring PHPs mail()

Inläggav Jim Westergren » 16 jun 2010, 13:21

Jonas skrev:mail.n.nu pekar mot vårt mailsystem. Peka om den mot din egen server blir det troligen lite bättre. ;)


Helt rätt och det gjorde jag, testade och funkade fint.

Jag fann även ut med hjälp av http://www.openspf.org att rätt SPF för mig ska vara: v=spf1 a mx -all a eftersom N.nu skickar mail och mx eftersom jag har en alias som forwardar inkommande mail av glesys/trekia.

Jag lär mig mer för varje dag.

Nästa problem

Fick ett mail som studsade genom ett kontaktformulär pga följande:

<förnamn.efternamn@roxtec.com>: host deframx30.softcom.dk[87.230.103.106] said:
552 Unable to process message: msg.1276602313.302934.12972 - error: Illegal
MIME chars found in header: <From: Julia
<förnamn.efternamn@se.roxtec.com>__> (in reply to end of DATA command)

Final-Recipient: rfc822; förnamn.efternamn@roxtec.com
Action: failed
Status: 5.0.0
Remote-MTA: dns; deframx30.softcom.dk
Diagnostic-Code: smtp; 552 Unable to process message:
msg.1276602313.302934.12972 - error: Illegal MIME chars found in header:
<From: Julia <förnamn.efternamn@se.roxtec.com>__>


Jag använder följande och kan inte se felet??

Kod: Markera allt

$headers 
= "From: ".$_POST['name']." <".$_POST['email'].">\r\n";
$headers .= "Reply-To: ".$_POST['name']." <".$_POST['email'].">\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8";

mail($to, $subject, $contents, $headers, "-fsupport@n.nu") 


Är det så att jag inte kan använda mig av ett namn och sedan <e-post> i From om jag har text/plain utan måste då ha text/html ?? Googlade som tusan igår men kunde inte hitta någon anledning. Eller är det roxtec.com som har konstiga valideringsregler? Vanligtvis funkar det.
Användarvisningsbild
Jim Westergren
 
Inlägg: 7
Blev medlem: 14 jun 2010, 10:49
Ort: Malmö

Nästa

Återgå till Allmänt

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst

cron