Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z kodowaniem znaków i spamem, funkcja mail()
kuba_
post 28.12.2007, 11:00:07
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


Cześć wysyłam maila w następujący sposób:

Kod
mail("mojmail@gmail.com" , "Test działania funkcji mail()" , "Działa!" , "From: serwer@gmail.com\r\ncharset=utf8\r\n")


Mail do mnie dochodzi, ale mam następujący problemy:
1. zamiast polskich znaków dostaję krzaczki. ustawiłem kodowanie takie jak mam na Debianie, czyli utf8, ale to nie pomogło.
2. mail odrazu ląduje w folderze spam ;p

Da się je jakoś rozwiązać?

P.S. Treść maila jaką otrzymuję, to:
Kod
charset=utf8


Działa!


Ten post edytował kuba_ 28.12.2007, 11:01:58
Go to the top of the page
+Quote Post
ayeo
post 28.12.2007, 11:17:02
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Nie wiem co tam nawyprawiałeś smile.gif

$headers .= "Content-type: text/html; charset=iso-8859-2 \r\n";
$headers .= "From: \panX\" <panX@gmail.com>\n";

mail("mojmail@gmail.com", "Test działania funkcji mail()", "Działa!", $headers);

Ten post edytował ayeo 28.12.2007, 11:27:49


--------------------
Go to the top of the page
+Quote Post
kuba_
post 28.12.2007, 11:44:04
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


Mail dochodzi tak jak wcześniej: nie ma polskich znaków i ląduje w spamie...
Go to the top of the page
+Quote Post
ayeo
post 28.12.2007, 11:45:47
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


sorry, wkleiłem nie to co miałem


zamień
$headers .= "Content-type: text/html; charset=iso-8859-2 \r\n";

na
$headers .= "Content-type: text/html; charset=utf8 \r\n";


--------------------
Go to the top of the page
+Quote Post
seaquest
post 28.12.2007, 11:58:24
Post #5





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Ląduje w spamie, bo podajesz się za serwer gmail.com w from a nim nie jesteś.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
kuba_
post 28.12.2007, 12:10:47
Post #6





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


1. Treść maila uwzględnia już polskie znaki, dzięki temu kodowi co zarzucił ayeo. Tylko jest tutaj mały problem: w temacie wiadomości nadal są krzaczki.
2. Jak wysyłam wiadomość od:
$headers .= "From: \serwer\ <mailer@byleco.com>\r\n";
to też ląduje w spamie. Co ja mam tutaj podać za dane, żeby gmail go tak brzydko nie traktował.
3. W powyższym przykładzie otrzymuję maila od: "serwer" <"serwer">, a czemu nie od serwer <mailer@byleco.com>??
Go to the top of the page
+Quote Post
andrew1985
post 28.12.2007, 12:30:50
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 4
Dołączył: 28.12.2007

Ostrzeżenie: (0%)
-----


Co do spamu to problem lezy w nieprawidłowym nagłówku.
A co polskich znaków to trzeba przekonwertować kodowanie. Jak masz strone zrobiona w UTF-8 to ta funkcja powinna ci zadziałać prawiodłow. Bynajmniej na moich stronach działa ona jak się należy bo swego czasu też miałem problem z kodowaniem itp. Ale sobie poradziłem.

Kod
function MailTo($title, $text, $mailtto, $mailfrom, $mailfrom_name)
    {
        $user_mail = $mailtto;
        
        $subject = $title;
        $subject = "=?UTF-8?B?".base64_encode($subject)."?=";
        
        $header  = "Reply-to: $mailfrom_name <$mailfrom>\r\n";
        $header .= "From: $mailfrom_name <$mailfrom>\r\n";
        $header .= "Return-Path: $mailfrom_name  <$mailfrom>\r\n";
        $header .= "Content-type: text/html; charset=ISO-8859-2 \r\n";
        $header .= "MIME-Version: 1.0\r\n";

        $text = iconv("UTF-8","ISO-8859-2", $text); //konwertuje tekst z utf na iso
        
        return @mail($user_mail, $subject, $text, $header);
    }
Go to the top of the page
+Quote Post
kuba_
post 28.12.2007, 12:46:54
Post #8





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


Fajną funkcję napisałeś smile.gif Rozwiązuje wszystkie problemy oprócz tego, że wiadomość dalej leci do spamu ;p ach ten gmail...
Ktoś ma jakieś sugestie?

Ten post edytował kuba_ 28.12.2007, 13:00:20
Go to the top of the page
+Quote Post
andrew1985
post 28.12.2007, 13:02:52
Post #9





Grupa: Zarejestrowani
Postów: 48
Pomógł: 4
Dołączył: 28.12.2007

Ostrzeżenie: (0%)
-----


hmmm u mnie działa ale to pewnie dlatego ze leci z innego serwera.
Spróbuj wywalić linike:
$header .= "From: $mailfrom_name <$mailfrom>\r\n";
i sprawdz.
Bo generalnie nie można się podszywac pod serwer.
A jeżeli to nie wyapli to w tą linike wpisz faktyczny adres email serwera z którego wysyłasz.
Go to the top of the page
+Quote Post
kuba_
post 28.12.2007, 13:13:55
Post #10





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


usunąłem tą linijkę i wszystko śmiga! Wielkie dzięki!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 9.08.2025 - 09:30