Avatar billede Asky Forsker
23. august 2012 - 16:14 Der er 24 kommentarer og
1 løsning

Firma modtager ikke mail

Jeg har programmeret en række formularer i php.
De har virket i et stykke tid, men nu modtager firmaet ikke bestillingsmailen, selvom kunden stadigvæk modtager kvitteringen.
Det er ikke så godt.
til bestillingen bruger jeg disse linier:

$eol = "\r\n"; // Som beskrevet i RFC
$navn = $_REQUEST["navn"];
$email = $_REQUEST["email"];//kundens opgivne email
$headers = "From: firma <firma@domaene.dk>\nBCC: Chef <firma@domaene.dk>".$eol;
$headers .= "MIME-Version: 1.0".$eol; // fortæller at det er en MIME mail - f.eks. HTML indhold
$headers .= "Content-type: text/html; charset=iso-8859-1".$eol;//. $eol;   

Supporten på tdcwebmore mener at Chef-mailen går i et eller andet filter, og bliver derfor ikke sendt.
Kan det programmeres anderledes, så vi undgår dette bøvl?
Avatar billede scootergrisen Nybegynder
23. august 2012 - 16:24 #1
Prøv og ændre firma@domaene.dk til en email på et andet domæne og se om det så virker.

Prøv og spørg webhotel udbyderen om der eventuelt er grænse på antal emails som kan sendes eller om de har lavet om på noget for nylig.
Avatar billede olsensweb.dk Ekspert
23. august 2012 - 16:54 #2
Supporten på tdcwebmore mener at Chef-mailen går i et eller andet filter, og bliver derfor ikke sendt.
du kan prøve at slå din mailserver op her
http://www.mxtoolbox.com/ eller http://www.mxtoolbox.com/blacklists.aspx
så kan du udelukke den mulighed

hvorfor bruger du $_REQUEST og ikke $_POST eller $_GET ??
du lave et sikkerheds hul, ved at accepterer både post og get

men ellers er dette
Prøv og ændre firma@domaene.dk til en email på et andet domæne og se om det så virker.
et udemærket forsøg

om ikke andet kan du melde tilbage til TDC med svarene fra mxtoolbox og anden mailaddresse
Avatar billede olsensweb.dk Ekspert
23. august 2012 - 16:58 #3
eller http://www.mxtoolbox.com/blacklists.aspx
som du kna anvende hvis du kender mail serverens ip addresse
Avatar billede Asky Forsker
23. august 2012 - 18:12 #4
Prøv og ændre firma@domaene.dk til en email på et andet domæne og se om det så virker:

Det prøvede jeg, inden jeg oprettede spørgsmålet. Det virker ikke.
Jeg har også prøvet at flytte hele formularen over på et andet webhotel hos en anden udbyder. ..Og så virkede det!!
Men det er nok ikke en holdbar løsning.

hvorfor bruger du $_REQUEST og ikke $_POST eller $_GET ??

Den kode, jeg har stående stammer fra denne udmærkede konference, hvor et klogt hoved gav mig den. Jeg prøvede den - og det virkede.
Avatar billede Asky Forsker
26. august 2012 - 21:44 #5
Jeg har nu midlertidigt flyttet alle formularer til en anden udbyder. Her virker det for nuværende. Men der er vel en risiko for, at det samme pludselig sker hos denne udbyder, når jeg endnu ikke kender årsagen? Det giver mig dog lidt luft til at bore videre i problemet - og måske får jeg også et svar fra den oprindelige udbyder? Flere indput fra denne konference er også særdeles velkomne;-)
Avatar billede olsensweb.dk Ekspert
27. august 2012 - 11:45 #6
#4
Den kode, jeg har stående stammer fra denne udmærkede konference, hvor et klogt hoved gav mig den. Jeg prøvede den - og det virkede.
hvor klogt er det at acceptere både post og get samtidig ??, du bør kun acceptere via post, og du skal validere dine data (hvis du ikke gør det allerede)

hvad er resultatet af hvis du skriver dit domail navn i http://www.mxtoolbox.com/ ??
skriv dit doamin navn i feltet og tryk på MX lookup
du fåret resultat som dette:
10     mail6.unoeuro.com     94.231.108.238     60 min     Blacklist Check      SMTP Test
tryk på Blacklist Check

hvis du er i et filter, er det ike nødvendigvis dig der er årsagen, da mange domains deler sammen mailserver

#5
Men der er vel en risiko for, at det samme pludselig sker hos denne udbyder, når jeg endnu ikke kender årsagen?
ja
Avatar billede Asky Forsker
27. august 2012 - 15:40 #7
Har nu ændret til POST. Det virker til kunden, men stadigvæk ikke til chef-mailen uanset, hvilken mailadresse, det er inkl. GMAIL

$eol = "\r\n"; // Som beskrevet i RFC
$navn = $_POST["navn"];
$email = $_POST["email"];//kundens opgivne email
$headers = "From: firma <firma@domaene.dk>\nBCC: Chef <firma@domaene.dk>".$eol;
$headers .= "MIME-Version: 1.0".$eol; // fortæller at det er en MIME mail - f.eks. HTML indhold
$headers .= "Content-type: text/html; charset=iso-8859-1".$eol;//. $eol; 
 
I  MX lookup er domænerne både på tdcwebmore og webhosting begge blacklistet på forskellige virus. Det må være derfor, det ikke virker. Hvad gør jeg så?
Hvad gør jeg så
Avatar billede olsensweb.dk Ekspert
27. august 2012 - 16:43 #8
I MX lookup er domænerne både på tdcwebmore og webhosting begge blacklistet på forskellige virus. Det må være derfor, det ikke virker.
det ER derfor. de fleste virksomheder abbonerer på en hel del filter, og står ens malserver der i modtager de simpelthen ikke mailen (når ikke til deres mailserver)

hvis det er dit domain der er inficeret med virus, starter du med at rense dit domain, og får fjernet den virus, samt alt det rod den måtte have lavet.
når du er helt sikker på dit domain er rent, kontakter du tdc support, med opfølgende på den sag du har lavet i #0
noget med:
jeg har konstateret at mailserver xxx som jeg anvender er blacklisted hos yyyy pga virus, jeg har være mit domain igennem og der er (nu) rent

jeg ved ikke om TDC skal kontakte pågældende blackliste og bede om at blive fjernet, eller om det sker automatisk
Avatar billede Asky Forsker
28. august 2012 - 09:06 #9
jeg har nu foretaget følgende efter kontakt med webhosting, som oplyser, at der heldigvis ikke er det mindste spor af virus.
I min oprindelige kode har jeg foretaget følgende rettelser:
$eol = "\r\n"; // Som beskrevet i RFC
De to requests er slettet, da de tidligere i koden i forvejen står som Post. I headers er From taget ud, da den ikke er nødvendig.
Kodestumpen ser nu således ud:
$headers = "BCC: Chef <firma@domaene.dk>".$eol;
$headers .= "MIME-Version: 1.0".$eol; // fortæller at det er en MIME mail - f.eks. HTML indhold
$headers .= "Content-type: text/html; charset=iso-8859-1".$eol;//. $eol;
herefter følger definition af $besked med designanvisninger og indhold fra de inputfelter, der er udfyldt.
til sidst mail($email, $emne, $besked, $headers); 
Jeg mener nu, at have elimineret sikkerhedshullet, men ska lige afprøve lidt mere.
Avatar billede Asky Forsker
30. august 2012 - 11:15 #10
Domænerne er heldigvis ikke inficeret med virus.
Formularerne virker nu på begge websteder.
Men afsender på mailene er lidt uskøn idet det er usernrxxx@webhotel.dk.
Jeg eksperimenter med at sætte "From" ind et andet sted i headers
fx nederst:
$headers. = "From: firma <firma@domaene.dk>".$eol;
Det har indtil nu virket.
Hvad siger sikkerhedseksperterne?
Avatar billede olsensweb.dk Ekspert
30. august 2012 - 13:05 #11
det har som så ikke noget med sikkerhed at gøre, men rækkefølgen af headers kan have betydning, jeg holder mig til den vist i http://dk2.php.net/manual/en/function.mail.php

men ofte springer jeg over hvor gæret er lavest og bruger OleBole's function mail_utf8 http://www.eksperten.dk/spm/961816 #3, så skal jeg ikke tænke på headers, og jeg vil gerne holde mig til utf8 hele vejen rundt
Avatar billede Asky Forsker
30. august 2012 - 20:39 #12
Generelt bruger jeg charset=iso-8859-15. Kan jeg så bruge Oleboles kode umiddelbart?
Jeg bruger rask væk &aelig; - &oslash; osv. og vil nødig til at rette alt det.
- Men det ser fristende ud at tilpasse og bruge koden.
Avatar billede Asky Forsker
30. august 2012 - 21:57 #13
Undskyld denne iso-8859-1
Avatar billede olsensweb.dk Ekspert
31. august 2012 - 19:30 #14
>Generelt bruger jeg charset=iso-8859-1. Kan jeg så bruge Oleboles kode umiddelbart?
ikke umildbart, uden føst at incodede med http://dk2.php.net/utf8_encode, men hvorfor hænger du fast i iso ??
det meste af www er gået over til utf-8 hvorfor ikke dig ??

>Jeg bruger rask væk &aelig; - &oslash; osv. og vil nødig til at rette alt det.
det bør du rette, og få styr på dit tengsæt.
ja det er et heste arbejde, men du vil blive glad i længden

lidt off topic
en hel del PHP functioner understøtter kun utf8, hvis du senere skal anvende noger AJAX er du tvunget til utf8, da ajax ikke understøtter andet
Avatar billede Asky Forsker
02. september 2012 - 22:12 #15
I en amerikansk/engelsk konference om PHP læste jeg tilfældigt, at det var almindeligt at webhotel-servere på grund af noget sikkerhedssoftware frasorterede CC og BCC i PHP-mail. Mon ikke det er det, jeg er løbet ind i?
Tak for de gode råd med UTF-8. Jeg har nu leget lidt med det. Det ser ikke ud til at være uoverkommeligt at skifte, så det gør jeg hen ad vejen efterhånden som jeg alligevel renoverer koden til de 14 formularer, jeg vedligeholder.
Midlertidigt for at firmaet kan få sine bestillinger bruger jeg
3 headers med denne
$headers = "BCC: firma <firma@domaene.dk>".$eol; 
øverst og så kun de to med definition af doctype
Afsenderen bliver så en grim Userxxx@tdcwebmore.dk afsender.
Men bestillingen kommer igennem.
På sigt vil jeg nok skifte til Oleboles UTF-8 mail.
Hvad siger du til det?
Avatar billede Asky Forsker
03. september 2012 - 12:27 #16
Hej igen
Nu har jeg næsten styr på min første formular med Oleboles kode.
Eneste problem er, at alle min beskeds html-koder kommer med i mailen. Jeg kan jo bare lade være med at sende den i html, men måske er der nogen, der kender andre muligheder?
Avatar billede olsensweb.dk Ekspert
03. september 2012 - 13:13 #17
#16

har du sat sidste parameter i mail_utf8 ??
default er den sat til plain, men du skal sætte den til html, hvis du sender html formateret mails

mail_utf8($to, $subject, $message, $from, $cc, $bcc, 'html');
Avatar billede olsensweb.dk Ekspert
03. september 2012 - 13:35 #18
du kan læse lidt og en tidligere vertion af functionen mail_utf8 på http://www.eksperten.dk/spm/961271 #6, #8, #11
Avatar billede Asky Forsker
03. september 2012 - 15:08 #19
Så er den vist hjemme. Jeg sad egentlig og gættede mig til noget i den retning ved at læse i koden. Nu er det så bekræftet. Jeg siger mange tak for hjælpen og går i gang med at programmere om til UTF-8.
Sjovt nok teksten til at skrive på skærmen skal stadigvæk have &oslash; mv for æøå for at stå rigtigt men ikke teksten i mailen og i indputfelterne??
Avatar billede olsensweb.dk Ekspert
03. september 2012 - 15:26 #20
>Sjovt nok teksten til at skrive på skærmen skal stadigvæk have &oslash; mv for æøå for at stå rigtigt
tør man antage du:
* ikke har gemt filen i UTF8 ??
* includerer andre filer, der ikke er gemt som utf8 ??
* ikke har sat meta tag charset til utf8

sammen char set hele vejen rundt så virker det.
Avatar billede Asky Forsker
03. september 2012 - 17:52 #21
* ikke har gemt filen i UTF8 ??
* includerer andre filer, der ikke er gemt som utf8 ?? -Det har jeg ikke
* ikke har sat meta tag charset til utf8 - Det har jeg gjort.
så det er nok det første.
Har egentlig antaget at min Dreamweawer, som jeg som regel skriver kode i med kodevisning - fulgte sprogddefinitionen.
Jeg må lige have filen omkring en editor, der kan UTF-8.
Kan Notepad sådan noget? eller Word?
Avatar billede Asky Forsker
04. september 2012 - 16:07 #23
Har nu prøvet notepad++ Den er jo glimrende.
Før det fandt jeg ud af at min Dreamweaver 2004 godt kan gemme i UTF-8, men jeg var dum nok til at sætte flueben ved BOM - og så brugte jeg resten af aftenen på at fjerne BOM igen. det krævede lidt surfen på eksperten.dk. Jeg fandt ikke et program, der kan vise BOM, så man lige kan slette de tre tegn igen, men jeg fik den da væk til sidst.
Nu har jeg testet min kode adskillige gange på webhosting og det virker fint.
Og så ØV på tdcwebmore smider serveren Bcc væk!
Jeg vil foreslå min chef at skifte webhotel. . .
Avatar billede Asky Forsker
05. september 2012 - 10:40 #24
Hjælp!
jeg har jo afgivet pointene, men nu løber jeg ind i denne fejlmeddelelse.
Der er INGEN "\" kan i hvert fald ikke se den? når jeg sletter hele headersektionen linje for linje, får jeg stadigvæk samme melding i samme linje.
Har prøvet notepad++, Dreamweaver m fl.

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in . . .on line 2

Parse error: parse error, unexpected T_STRING in ... on line 3
Avatar billede Asky Forsker
06. september 2012 - 13:39 #25
Tin andre, der kommer i samme situation:
Fandt selv fejlen: fejlmeddelelsen var ikke helt nøjagtig.
Langt nede i HTML-delen fandt jeg en fejl:
en </form> var skrevet 2 gange.
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