Filip Górny

Filip Górny Programista,
webdeveloper.

Temat: mail() na onet nie dochodzi.

Nie rozumiem dlaczego. Korzystam z hostingu nazwy. Maile na onet nie chcą dochodzić i przez to tracę masę ludzi którzy mogliby założyć konta ;-( Na gmail itp dochodzi błyskawicznie. Poniżej zamieszczam kod klasy pomocnicznej do wysyłki maili.



<?php

class Email
{
public $body;

public function ParseBody($tplFile, $data)
{
if (!(file_exists($tplFile)))
Log::Critical('Tpl file not exists: '.$tplFile);

$body = file_get_contents($tplFile);
$body = Page::PureParseString($body, $data);
$this->body = $body;
return $body;
}

public function Send($to, $subject, $from=false)
{
$hs = "Content-Type: text/html; charset=\"utf-8\"\r\n";
$from and $hs .= "From: $from\r\nReply-to: $from\r\n";
if (!(@mail($to, $subject, $this->body, $hs)))
{
die($this->body);
}
}

public function SendRegister($code, $email=false, $module='Register')
{
global $_lang;
if (empty($_lang)) $_lang = 'pl';

// getting tpl file
(file_exists($file = 'statichtm/'.$_lang.'/email_register.htm'))
or
(file_exists($file = 'templates/email_register.tpl'))
or
(file_exists($file = '_lib/templates/email_register.tpl'));

$link = ABSOLUTE_PATH.'?m='.$module.'&code='.$code;
$this->ParseBody($file, array('link' => $link));

$email or $email = $_POST['email'];
$this->Send($email, SITE_NAME, ADMIN_EMAIL);
}
}

?>

konto usunięte

Temat: mail() na onet nie dochodzi.

mail() sux.

http://phpmailer.codeworxtech.com/
Andrzej Dybionka

Andrzej Dybionka Full Stack Developer

Temat: mail() na onet nie dochodzi.

Przez takie coś "From: $from" twoje maile mogą być użynane za spam za podszywanie się pod inny serwer.
Daniel Częstki

Daniel Częstki senior php developer

Temat: mail() na onet nie dochodzi.

serwer onetu uzywa graylisting do sprawdzania nadawcy.
sprawdz czy serwer nazwa.pl prawidlowo ponawia wysylanie wiadomosci.

konto usunięte

Temat: mail() na onet nie dochodzi.

Andrzej Dybionka:
Przez takie coś "From: $from" twoje maile mogą być użynane za
spam
a jaka w/g Ciebie powinna byc konstrukcja?
Andrzej Dybionka

Andrzej Dybionka Full Stack Developer

Temat: mail() na onet nie dochodzi.

Wojciech Piotrowicz:
Andrzej Dybionka:
Przez takie coś "From: $from" twoje maile mogą być użynane za
spam
a jaka w/g Ciebie powinna byc konstrukcja?

Konstrukcja jest dobra. Tylko zależy jak się wywołuje tą funkcję. W zmiennej $from powinien znaleźć się tylko adres mailowy w domenie naszego serwera.

konto usunięte

Temat: mail() na onet nie dochodzi.

Podstawowa zasada antyspamerów adres email inny niż adres serwera = spam.
Dominik Bednarczyk

Dominik Bednarczyk Analityk /
Programista

Temat: mail() na onet nie dochodzi.

Witam

Najpierw sprawdź dokładnie, dlaczego serwer odbiorcy odbił Tobie e-mail, później kod błędu wygoogluj (powinieneś dostać raport na konto nadawcy).

1. Onet i wiele innych serwerów darmowych korzysta z SPF (http://www.openspf.org/). Czyli to co Ci napisał Andrzej Dybionka. Odbita poczta będzie zawierała tekst podobny do tego

"xxx.xxx.xxx.xxx does not like recipient.
Remote host said: / Zdalny host odpowiedzial: 550 You don't seem to be legitimate sender, check your SPF
Giving up on xxx.xxx.xxx.xxx"

Jedyne rozwiązanie, to wysyłać maila z $from w domenie serwera

2. Może być jeszcze problem z treścią, część antyspamerów sprawdza procentowo ilość kodu HTML w treści (raczej wtedy nie odbija, tylko kategoryzuje jako SPAM) - zmniejsz ilość HTMLa, lub wysyłaj plain/text

3. Twój serwer został już oznaczony jako spamerski - zadzwoń do Onetu / WP i zapytaj. Kilka lat temu, gdy korzystałem z wynajmowanych serwerów (także tych ze stanów / Francji) był to częsty problem, antyspamery są teraz inteligentniejsze podczas blokowania serwerów nadawców, ale może się to jeszcze zdarzyć.
Filip Górny

Filip Górny Programista,
webdeveloper.

Temat: mail() na onet nie dochodzi.

Faktycznie, po usunięciu from, mail doszedl (szkoda ze zamiast fajnego adresu dla strony jest widoczne moje nazwisko, no ale trudno). Z tym że, wygląda tak:

Witaj,

Dzi�kujemy za rejestracj� w naszym serwisie.

Teraz Twoje konto czeka na aktywowanie, musisz klikn�� link ponişej aby tego dokona�.
Je�li link nie dzia�a skopiuj go do paska adresu w przegl�darce i wci�nij enter.

konto usunięte

Temat: mail() na onet nie dochodzi.

Filip Górny:
Dzi�kujemy za rejestracj� w naszym serwisie.
klient pocztowy skonfigurowany do odbierania UTF?
nie lepiej wyslac jako 8859-2..?Wojciech Piotrowicz edytował(a) ten post dnia 29.01.08 o godzinie 12:47

konto usunięte

Temat: mail() na onet nie dochodzi.

Wszystko jest ok, tylko, że temat musi być tak wysłany (z RFC):
$subject = "=?UTF-8?B?".base64_encode($title)."?=";

-- edit --
Co do treści maila wysyłasz html - może tam być jeszcze coś nie tak z kodowaniem. Ja wysyłam czysty tekst i działa u mnie ok, z tak ustawionymi headerami:

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=UTF-8\r\n";Bartłomiej Biskupek edytował(a) ten post dnia 29.01.08 o godzinie 12:54

konto usunięte

Temat: mail() na onet nie dochodzi.

sie babrasz w mail()'em...

w tej klasie co Ci zapodalem dajesz po prostu sobie ladnie

$mail->charSet = 'utf8';
$mail->IsHTML = true;
..
.

itp itp ogolnie bardzo spoko klasa.

Rowniez obsluguje metode wysylki mail()'em. oprocz tego jest smtp oraz SENDMAIL.

pozdro!

konto usunięte

Temat: mail() na onet nie dochodzi.

$zendMail = new Zend_Mail('iso-8859-2');

$zendMail->setBodyText('Treść wiadomośći');
$zendMail->setFrom('noreply@twojserwis.pl', 'Twój Serwis');
$zendMail->addTo('odbiorca.do.ktorego@piszesz.pl', 'Jego nazwa');
$zendMail->addHeader('Reply-To', 'do.kogo@odpisac.pl');
$zendMail->setSubject('Tytuł');

$result = @$zendMail->send();

Jeżeli używasz UTF-8 to proponuje wszędzie gdzie mogą być polskie znaki użyć
$iso88592text = iconv('UTF-8//IGNORE', 'ISO-8859-2//IGNORE', $utf8text);

Nie polecam wysyłanie poczty w kodowaniu UTF-8 :)
Filip Górny

Filip Górny Programista,
webdeveloper.

Temat: mail() na onet nie dochodzi.

zend framework sux :P ale dzieki za podpowiedz z iconv

konto usunięte

Temat: mail() na onet nie dochodzi.

Filip Górny:
zend framework sux :P ale dzieki za podpowiedz z iconv

Co Wy macie z tym sux? :)

Poza tym zwróć uwagę na:
$zendMail->setFrom('noreply@twojserwis.pl', 'Twój Serwis');
$zendMail->addHeader('Reply-To', 'do.kogo@odpisac.pl');

Szczególnie na Reply-To :)Stanisław Głogowski edytował(a) ten post dnia 29.01.08 o godzinie 13:36

konto usunięte

Temat: mail() na onet nie dochodzi.

ja tam kodowanie strony daje utf8, wysylke maila rowniez utf8 (phpmailerem) i wszystko zawsze dziala ponadprzecietnie prawidłowo.

konto usunięte

Temat: mail() na onet nie dochodzi.

Jakub Świegot™:
ja tam kodowanie strony daje utf8, wysylke maila rowniez utf8 (phpmailerem) i wszystko zawsze dziala ponadprzecietnie prawidłowo.

Kodowanie strony tak (nie pamiętam kiedy ostatni raz użyłem innego kodowania).
Wiadomości nie zawsze są dobrze wyświetlane.
Dominik Bednarczyk

Dominik Bednarczyk Analityk /
Programista

Temat: mail() na onet nie dochodzi.

Jakub Świegot™:
ja tam kodowanie strony daje utf8, wysylke maila rowniez utf8 (phpmailerem) i wszystko zawsze dziala ponadprzecietnie prawidłowo.

Dużo osób korzysta ze darmowych kont pocztowych przez www - mail wyświetlany jest wówczas w kodowaniu strony (w Polsce najczęściej w ISO). Nie przeskoczysz, musisz się dostosować.

Ps. też wysyłam w UTF - klientom "każę" zainstalować Thunderbirda :)

konto usunięte

Temat: mail() na onet nie dochodzi.

Ja podobnie jak Jakub nie narzekam - z UTF zawsze działa jak należy. :)

konto usunięte

Temat: mail() na onet nie dochodzi.

Można równie dobrze obciąc polskie znaki i pojsc na latwizne tzw. "pierdolic" ;).

albo zrobic sobie krotki listing najpopularniejszych polskich darmowych kont pocztowych i kodowan w ich webmailach, a nastepnie przy wysylce maila sprawdzac -> jesli o2.pl || onet.pl || costam.pl = iso8859-2, else utf8.
itp itd.Jakub Świegot™ edytował(a) ten post dnia 29.01.08 o godzinie 13:46



Wyślij zaproszenie do