23. august 2012 - 16:14Der 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?
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.
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;-)
#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
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å
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
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.
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?
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
Generelt bruger jeg charset=iso-8859-15. Kan jeg så bruge Oleboles kode umiddelbart? Jeg bruger rask væk æ - ø osv. og vil nødig til at rette alt det. - Men det ser fristende ud at tilpasse og bruge koden.
>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 æ - ø 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
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?
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?
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 ø mv for æøå for at stå rigtigt men ikke teksten i mailen og i indputfelterne??
>Sjovt nok teksten til at skrive på skærmen skal stadigvæk have ø 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
* 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?
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. . .
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
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.
Synes godt om
Ny brugerNybegynder
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.