| Autor | Zpráva | ||
|---|---|---|---|
| SwimX Profil |
#1 · Zasláno: 13. 1. 2010, 14:55:25
Dobrý den,
takto vypadá kód na odesílání emailu. Stále mi však padá do spamu, co mám špatně? $odkaz = WWW.'registrace/aktivace/'.md5($id).md5($_POST['email'])."/"; // WWW je konstanta define('WWW', 'http://www.sps.pi.com'); $zprava = " <h2>Registrace</h2> <br><p>Vážený zákazníku,<br> Děkujeme Vám, za regisraci do našeho obchodu.<br> Pro aktivaci vašeho účtu pokračujte prosím na dokaz $odkaz<br><br><br>Pokud jste se u nás neregistroval, pak pouzeně kdo zneužil Váš email, neklikejte tedy na aktivační odkaz ale kontaktujte nás. Děkujeme</p> "; $mail = @cs_mail($_POST['email'], "Registrace", EMAIL_HEAD.$zprava.EMAIL_FOOT, "html"); define("INFO_EMAIL_NAME", "Virtuální obchod"); define("INFO_EMAIL", "info@obchod.sps-pi.cz"); define("EMAIL_HEAD", "<h1 style=\"font-size: 16pt; color: #0066ff;\">\nSPŠ a VOŠ Písek<br />Virtuální obchod s elektronickými součástkami\n</h1><p><br /></p>"); define("EMAIL_FOOT", "<p><br /><br /><br /><br /></p><p>S pozdravem a přáním pěkného dne\n<br /><br /><a href=\"#\">Virtuální obchod s elektronickými součástakmi</a><br />\n<a href=\"http://www.sps-pi.cz\">SPŠ a VOŠ Písek</a></p>"); function autoUTF($s) { // detect UTF-8 if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) return $s; // detect WINDOWS-1250 if (preg_match('#[\x7F-\x9F\xBC]#', $s)) return iconv('WINDOWS-1250', 'UTF-8', $s); // assume ISO-8859-2 return iconv('ISO-8859-2', 'UTF-8', $s); } function cs_mail ($to, $predmet, $zprava, $text="plain", $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $head .= "Reply-To: ".INFO_EMAIL_NAME." <".INFO_EMAIL.">\r\n"; $head .= "Return-Path: ".INFO_EMAIL_NAME." <".INFO_EMAIL.">\r\n"; $head .= "From: ".INFO_EMAIL_NAME." <".INFO_EMAIL.">\r\n"; $head .= "Organization: ".INFO_EMAIL_NAME."\r\n"; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/$text; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $zprava = base64_encode (autoUTF ($zprava)); return mail ($to, $predmet, $zprava, $head); } |
||
| nightfish Profil |
#2 · Zasláno: 13. 1. 2010, 15:05:22
vidím typ text/html, ale nevidím tam žádné <html>, <body> atd.
|
||
| SwimX Profil |
#3 · Zasláno: 13. 1. 2010, 16:58:09
nightfish:
bývalo to v EMAIL_HEAD ale pak jsem udělal v administraci možnost editace, a na todle uplně zapomněl. Zkusím to tam eště dodat, pokud to bude tím, tak jsem blb :) Dík |
||
| SwimX Profil |
#4 · Zasláno: 13. 1. 2010, 18:55:10 · Upravil/a: SwimX
OK bylo to tím, přidal jsem tam <html><head><title>Virtual....</title></head><body>
a do FOOT </body></html> Mám ale ještě jeden problém, proč to padá do spamu. Když v halvičkách FROM: Virtuální obchod <info@sps-pi.com> tak mi přijde FROM do emailu takto: Virtuální obchod <info@pra.sps-pi.com> [=?ISO-8859-1?Q?Virtu=E1ln=ED_obchod_<info@pra.sps-pi.com>?=] Může za to diakritika, bez ní to je v pořádku, ale co s tím? nějakým způsobem to prohnat přes autoUTF? upravil jsem fci cs_mail na toto: function cs_mail ($to, $predmet, $zprava, $text="plain", $head = "")
{ $predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?=";
$head .= "Reply-To: =?utf-8?B?". base64_encode(autoUTF(INFO_EMAIL_NAME))."?= <".INFO_EMAIL.">\r\n";
$head .= "Return-Path: =?utf-8?B?".base64_encode (autoUTF(INFO_EMAIL_NAME))."?= <".INFO_EMAIL.">\r\n";
$head .= "From: =?utf-8?B?".base64_encode (autoUTF(INFO_EMAIL_NAME))."?= <".INFO_EMAIL.">\r\n";
$head .= "Organization: =?utf-8?B?".base64_encode (autoUTF(INFO_EMAIL_NAME))."?=\r\n";
$head .= "MIME-Version: 1.0\n";
$head .= "Content-Type: text/$text; charset=\"utf-8\"\n";
$head .= "Content-Transfer-Encoding: base64\n";
if($text=='html') $zprava = EMAIL_HTML_HEAD.$zprava.EMAIL_HTML_FOOT;
$zprava = base64_encode (autoUTF ($zprava));
return mail ($to, $predmet, $zprava, $head); }což sice funguje, email přijde do doručené pošty > zobrazí se správně, vše ok, ale když na něj kliknu jako číst (Outlook) tak mi ho to zahodí do nevyžádané pošty. Ale to už není tak zlé, alespoň se zobrazí v doručené. Přesto, kdyby někdo věděl řešení.... |
||
| SwimX Profil |
#5 · Zasláno: 13. 1. 2010, 22:36:36
Nikdo by mě nenasměroval, alespoň kde hledat? Upravit či přidat nějaké hlavičky? :(
|
||
| AM_ Profil |
#6 · Zasláno: 13. 1. 2010, 22:39:24
byla na to nějaká funkce, na kterou si teď bohužel nevzpomenu, něco jako encode_mimeheader.
Jinak samozřejmě doporučil bych PHPMailer a tohleto nebudeš vůbec muset řešit. |
||
| SwimX Profil |
#7 · Zasláno: 13. 1. 2010, 22:41:27 · Upravil/a: SwimX
AM:
ale budu includovat tunu kravin navíc, chtěl jsem se mu vyhnout. myslels tudle? :) http://php.net/manual/en/function.mb-encode-mimeheader.php ale to jsem více m=ně vyřešil tím mým: $head .= "From: =?utf-8?B?".base64_encode (autoUTF(INFO_EMAIL_NAME))."?= <".INFO_EMAIL.">\r\n"; |
||
| SwimX Profil |
#8 · Zasláno: 14. 1. 2010, 21:59:45
nechal jsem si do souboru vypsat zprávu po té, co projede přes
$zprava = base64_encode (autoUTF ($zprava)); a vypadá takto: to je správně? :) Na email sice dorazí HTML tagy, a email se správně zobrazí, ale je ve spamu, nemlže to být tímto? PGh0bWw+PGhlYWQ+PHRpdGxlPlZpcnR1w6FsbsOtIG9iY2hvZCBzIGVsZWt0cm9uaWNrw71taSBzb3XEjcOhc3RrYW1pIFNQxaAgYSBWT8WgIFDDrXNlazwvdGl0bGU+PC9oZWFkPjxib2R5PjxoMSBzdHlsZT0iZm9udC1zaXplOiAxNnB0OyBjb2xvcjogIzAwNjZmZjsiPgpTUMWgIGEgVk/FoCBQw61zZWs8YnIgLz5WaXJ0dcOhbG7DrSBvYmNob2QgcyBlbGVrdHJvbmlja8O9bWkgc291xI3DoXN0a2FtaQo8L2gxPjxwPjxiciAvPjwvcD4NCgkJCQkJCQkJPGgyPlptxJtuYSBoZXNsYTwvaDI+DQoJCQkJCQkJCTxicj48cD5Ww6HFvmVuw70gesOha2F6bsOta3UsPGJyPiANCgkJCQkJCQkJTsSba2RvICh6xZllam3EmyB2eSkgcG/FvsOhZGFsIG8gem3Em251IGhlc2xhIHYgbmHFoWVtIG9iY2hvZHUuPGJyPg0KCQkJCQkJCQlQb2t1ZCBzaSBwxZllamV0ZSB2eWdlbmVyb3ZhdCBub3bDqSBoZXNsbyBwb2tyYcSNdWp0ZSBwcm9zw61tIG5hIGRva2F6IGh0dHA6Ly93d3cucHJhLnNwcy1waS5jb20vc2hvcC96YXBvbWVudXRlLWhlc2xvL3ptZW5hL2UxOThjYTZiNjE0NzQ4OGE5NzZlNmNiMGIwOTIyMzgwOGUyZDdkZmYzYjBkZGRiNDllMGM3M2ExOTBhZWY3OTgvDQoJCQkJCQkJCSA8YnI+PGJyPjxicj4NCgkJCQkJCQkJIFBva3VkIGpzdGUgbyB6bcSbbnUgaGVzbGEgbmVwb8W+w6FkYWwsIHBhayBwb3V6ZSBuxJtrZG8gem5ldcW+aWwgVsOhxaEgZW1haWwsIG5la2xpa2VqdGUgdGVkeSBuYSBha3RpdmHEjW7DrSBvZGtheiBhbGUga29udGFrdHVqdGUgbsOhcy4gRMSba3VqZW1lPC9wPiANCgkJCQkJCQk8cD48YnIgLz48YnIgLz48YnIgLz48YnIgLz48L3A+PHA+UyBwb3pkcmF2ZW0gYSBwxZnDoW7DrW0gcMSba27DqWhvIGRuZQo8YnIgLz48YnIgLz48YSBocmVmPSIjIj5WaXJ0dcOhbG7DrSBvYmNob2QgcyBlbGVrdHJvbmlja8O9bWkgc291xI3DoXN0YWttaTwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cDovL3d3dy5zcHMtcGkuY3oiPlNQxaAgYSBWT8WgIFDDrXNlazwvYT48L3A+PC9ib2R5PjwvaHRtbD4= |
||
| SwimX Profil |
#9 · Zasláno: 14. 1. 2010, 22:06:51
Stejně tak když si v Outlooku zobrazím hlavičky emailu:
Reply-To: =?utf-8?B?VmlydHXDoWxuw60gb2JjaG9k?= <info@pra.sps-pi.com> From: =?utf-8?B?VmlydHXDoWxuw60gb2JjaG9k?= <info@pra.sps-pi.com> Organization: =?utf-8?B?aW5mb0BwcmEuc3BzLXBpLmNvbQ==?= |
||
| Alphard Profil |
#10 · Zasláno: 14. 1. 2010, 22:30:36
Ano, to je správný výstup base64_encode. Dekódovat to umí base64_decode().
Pro předmět a hlavičky je to klasika. Samotné tělo mailu by se kódovat nemuselo, ale nezapomeňte kdyžtak smazat hlavičku Content-Transfer-Encoding: base64. Jestli to má vliv na spam vážně nevím. Mně to do spamu Gmail ani Thunderbird nehází. |
||
| SwimX Profil |
#11 · Zasláno: 14. 1. 2010, 22:38:37
Alphard:
„Mně to do spamu Gmail ani Thunderbird nehází.“ Zkoušel jsi se registrovat u mě a nespadlo? To je divné,posílám si to taky na gmail. |
||
| Alphard Profil |
#12 · Zasláno: 14. 1. 2010, 22:41:52
SwimX:
„Zkoušel jsi se registrovat u mě a nespadlo?“ Teď jsme se nepochopili, myslel jsem své maily z vlastního severu posílané funkcí cs_mail(). |
||
| SwimX Profil |
#13 · Zasláno: 14. 1. 2010, 22:43:50
Alphard:
mě také nikdy nepadaly, když to bylo text/plain. Asi to bude v tom HTML zkusím si ještě hrát :( |
||
| Alphard Profil |
#14 · Zasláno: 14. 1. 2010, 22:46:04
SwimX:
Scripty uvedené ve FAQ se snažím mít bezchybné. Podívám se na to, ale dřív než o víkendu to bohužel nestihnu, nevím co dřív :-(. Třeba bych si zkusil poslat mail od vás, ale na http://sps-pi.com/ jsem žádnou registraci nenašel |
||
| SwimX Profil |
#15 · Zasláno: 14. 1. 2010, 22:50:46
Alphard:
je to http://pra.sps-pi.com/shop/ nevím proč, to zařizovala škola. Registrace konkrétně: http://pra.sps-pi.com/shop/registrace/ Na seznamu do spamu nespadlo, na gmailu mi to padlo do obou. Předpokládám, že chyba bude u mě, takže se ji do víkendu pokusím najít. |
||
| Alphard Profil |
#16 · Zasláno: 14. 1. 2010, 22:58:27
Hmm, tak gmail to hodil do spamu.
Faktem je, že většinu mailů si posílám jako text. Pro html maily jsem v poslední době používal Nette\Mail | Nette Framework, protože umožňuje používat šablony. Jak jsem psal, na funkci cs_mail() se podívám o víkendu. Jestli najdu chybu nebo řešení, tak ho tam dopíši a ozvu se i tady. |
||
| SwimX Profil |
#17 · Zasláno: 14. 1. 2010, 23:15:16
Alphard:
Mnohokrát děkuji. Ale teď jsem zkusil odeslat soubor z pra.sps-pi.com/pokus.php kde jsem použil přesně funkci z FAQu (i text/plain) a stejně spadl do SPAMu. tentýž skript jsem hodil na webzdarma > do spamu nespadl. Testuji dál, jednoduché HTML s jednou H1 a odkazem. Z pra.sps-pi.com > spam, z webzdarma doručená pošta. Nicméně moje registrace padá do spamu i z webu zdarma, ale chyba je tedy určitě v HTML, budu eště chvilku zkoušet. Každopádně na podporu pra.sps-pi.com napíšu, ať se na to kouknou i oni. |
||
| SwimX Profil |
#18 · Zasláno: 14. 1. 2010, 23:51:37
Sem uplně zmaten a znechucen. Z pra.sps-pi jde všechno hned do spamu.
Z webu zdarma se mi povedlo odeslat email, který byl stejný jako je registrační (kromě odkazu pro přihlášení) asi 5x přišel do doručené pošty. Pak jsem k němu vložil i http://www...prihlaseni a od te doby padl do spamů. Když jsem odkaz opět odendal chodil stále do spamů. Pokud na něco přijdeš, tak ti budu nesmírně vděčný, v opačném případě prostě ve škole konstatuju, že za to může hosting, a tam kde vypisuji, Email byl odeslán, už je hláška: Zkontrolujte si i spam a je to. :D |
||
| nightfish Profil |
#19 · Zasláno: 15. 1. 2010, 06:43:58
SwimX:
> kde jsem použil přesně funkci z FAQu (i text/plain) a stejně spadl do SPAMu. > tentýž skript jsem hodil na webzdarma > do spamu nespadl. > posílám si to taky na gmail nepoužívá gmail kontrolu SPF? je u domény odesílatele SPF nějak nastaveno? |
||
| Alphard Profil |
#20 · Zasláno: 15. 1. 2010, 07:14:44
SwimX:
„Pak jsem k němu vložil i ht>tp://w>ww...prihlaseni a od te doby padl do spamů.“ A když si pošlete normální mail (myslím třeba z jiného mailového účtu) obsahující několik podobných odkazů (pra.sps-pi.com), tak taky spadne do spamu? |
||
| SwimX Profil |
#21 · Zasláno: 15. 1. 2010, 10:03:59 · Upravil/a: SwimX
Alphard:
„tak taky spadne do spamu?“ ano, spadnul. i když odkaz vedl na http://www.plavec.borec.cz/upfiles/maturita/ i na http://pra.sps-pi.com/shop/registrace/ nightfish: „SPF“ nevím co je :) pomůže ti toto?: email odeslaný z pra.sps-pi.com Delivered-To: vesele.spamuj@gmail.com Received: by 10.216.168.15 with SMTP id j15cs62892wel; Thu, 14 Jan 2010 12:57:00 -0800 (PST) Received: by 10.87.40.40 with SMTP id s40mr1735789fgj.73.1263502619349; Thu, 14 Jan 2010 12:56:59 -0800 (PST) Return-Path: <www-data@athena.zelenyweb.cz> Received: from athena.zelenyweb.cz (mail.zelenyweb.cz [88.86.107.58]) by mx.google.com with ESMTP id l19si7909285fgb.28.2010.01.14.12.56.59; Thu, 14 Jan 2010 12:56:59 -0800 (PST) Received-SPF: pass (google.com: domain of www-data@athena.zelenyweb.cz designates 88.86.107.58 as permitted sender) client-ip=88.86.107.58; Authentication-Results: mx.google.com; spf=pass (google.com: domain of www-data@athena.zelenyweb.cz designates 88.86.107.58 as permitted sender) smtp.mail=www-data@athena.zelenyweb.cz Received: by athena.zelenyweb.cz (Postfix, from userid 33) id A16C3B7D9D; Thu, 14 Jan 2010 21:57:02 +0100 (CET) To: vesele.spamuj@gmail.com Subject: =?utf-8?B?WmFwb21lbnV0w6kgaGVzbG8=?= Reply-To: =?utf-8?B?VmlydHXDoWxuw60gb2JjaG9k?= <info@pra.sps-pi.com> From: =?utf-8?B?VmlydHXDoWxuw60gb2JjaG9k?= <info@pra.sps-pi.com> Organization: =?utf-8?B?aW5mb0BwcmEuc3BzLXBpLmNvbQ==?= MIME-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20100114205702.A16C3B7D9D@athena.zelenyweb.cz> Date: Thu, 14 Jan 2010 21:57:02 +0100 (CET) email odeslaný z plavec.borec.cz/ Delivered-To: vesele.spamuj@gmail.com Received: by 10.216.168.15 with SMTP id j15cs64601wel; Thu, 14 Jan 2010 14:32:27 -0800 (PST) Received: by 10.204.48.132 with SMTP id r4mr793658bkf.158.1263508345238; Thu, 14 Jan 2010 14:32:25 -0800 (PST) Return-Path: <info@plavec.borec.cz> Received: from ns2.anoweb.cz (siva-2.webzdarma.superhosting.cz [88.86.113.132]) by mx.google.com with ESMTP id 5si2250496bwz.3.2010.01.14.14.32.24; Thu, 14 Jan 2010 14:32:25 -0800 (PST) Received-SPF: pass (google.com: domain of info@plavec.borec.cz designates 88.86.113.132 as permitted sender) client-ip=88.86.113.132; Authentication-Results: mx.google.com; spf=pass (google.com: domain of info@plavec.borec.cz designates 88.86.113.132 as permitted sender) smtp.mail=info@plavec.borec.cz Received: from loki.s.webzdarma.cz (loki.s.webzdarma.cz [88.86.113.138]) by ns2.anoweb.cz (Postfix) with ESMTP id E18A09EA7C for <vesele.spamuj@gmail.com>; Thu, 14 Jan 2010 23:35:38 +0100 (CET) Received: by loki.s.webzdarma.cz (Postfix, from userid 99) id 6ACC8F9990; Thu, 14 Jan 2010 23:32:23 +0100 (CET) To: vesele.spamuj@gmail.com Subject: =?utf-8?B?VsOhbm/EjW7DrSBjZW5h?= From: =?utf-8?B?T25kxZllaiDFoGVqdmw=?= <SvvimX@gmail.com> MIME-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 X-sender: info@plavec.borec.cz X-Abuse: postmaster@webzdarma.cz Message-Id: <20100114223223.6ACC8F9990@loki.s.webzdarma.cz> Date: Thu, 14 Jan 2010 23:32:23 +0100 (CET) |
||
| nightfish Profil |
#22 · Zasláno: 15. 1. 2010, 10:18:56
SwimX:
v obou případech je tam „Received-SPF: pass“ takže ověřením SPF to projde, takže nemám tušení |
||
|
Časová prodleva: 7 dní
|
|||
| SwimX Profil |
#23 · Zasláno: 22. 1. 2010, 17:59:25
Cituji odpověď od hostingu:
"ony e-maily zjevně vyřeší až pak přesun dat na doménu ".cz", e-maily jsou odesílány ze skritpovaného localhostu, navíc z domény, která je vedena bez uvedeného SenderID (což bohužel v nejbližší době nevyřeším, v budoucnu se ji snad podaří převést na správné údaje) a bohužel je pro svoji přítomnost v com zóně již dosti profláklá na rozesílání falešených e-mailů. Pokud se jedná o e-mail z poštovního klienta se zapnutým SMTP ověřováním, pak problém nebývá." |
||
|
Časová prodleva: 29 dní
|
|||
| Alphard Profil |
#24 · Zasláno: 20. 2. 2010, 14:10:58
Mám zpoždění, ale také výsledky.
Z posledních příspěvků sice vyplývá, že je problém na konkrétním serveru, ale přesto jsem to testoval. Použil jsem váš script a odesílal jsem e-maily z hostingů, které mám momentálně k dispozici, na gmail i jiné. Nikde mi to do spamu nespadlo, takže ve funci cs_mail() by něměl být problém ani s HTML e-maily. Jediné problémy, které jsem našel: 1. konstanty mají být na začátku, jinak se vypisují notice 2. některé služby (Seznam) špatné zobrazí název odesilatele, protože není správně ošetřená konstanta INFO_EMAIL_NAME |
||
| SwimX Profil |
#25 · Zasláno: 20. 2. 2010, 17:47:20
Ahoj,
Mnohokrát děkuji že jsi si s tím dal tu práci. Notice mě zrovna moc netrápí, stejně na ostrém servru je error_reporting 0 a notice asi bdue vyhazovat i několik dalších funkcí. :) Co to znamená špatně ošetřená konstanta? |
||
| Alphard Profil |
#26 · Zasláno: 20. 2. 2010, 17:53:19
SwimX:
„Co to znamená špatně ošetřená konstanta?“ Teď se koukám, že jsem si zkopíroval úvodní script, ve kterém není zakódovaná. Ve [#4] je to už opravené. |
||
|
Časová prodleva: 17 let
|
|||
0