Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mail() - wysłanie mejla z domeny z polską literą
Forum PHP.pl > Forum > PHP
tiar
Stawiam serwis na domenie z polską literą, a dokładniej z "ł", w nazwie domeny. Na razie wrzucam serwis na serwer linusowy z Fedorą, Pleskiem i sendmail'em stojący gdzieś w serwerowniach ovh.pl. I próbuję wysłać mejla potwierdzającego rejestrację za pomocą funkcji mail().

No i tu jest problem. Jak wpiszę w nagłówku adres nadawcy rejestracja@bezPolskiejLitery.pl to wszystko działa dobrze. Jak wpiszę nadawcę rejestracja@ZLiteraŁ.pl to serwer w ogóle tego adresu nie łapie. Mejl się wysyła, ale nadawcą jest anonymous@xxxxx.ovh.net.

CODE
<?php

// Plik zapisany w "UTF-8 without BOM
  
$confirmCode = 123456789;
$email = 'xxx@xxx.pl';
   
// W treści mejla polskie litery działają
$message = 'Drogi użytkowniku.  
Aby zakończyć proces rejestracji w portalu zliterał.pl prosimy o wejście na stronę WWW:
http://www.zliterał.pl.pl/cos_w_get';


// W temacie polskie litery działają jako tako. Outlook odbiera dobrze. Opera coś chrzani (robi się www.zliteraÅ‚.pl)
$subject = "potwierdzenie rejestracji w portalu www.zliterał.pl";
$subject = encodeSlowo($subject);


// Tu jest problem! Pewno muszę jakoś inaczej zakodować polskie litery w nagłówku.
$headers = "From: rejestracja \n" ;
$headers .= "Reply-To: rejestracja@zliterał.pl \n";
$headers .= "X-Mailer: PHP/". phpversion()."\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=utf-8\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\n";
  
mail($email, $subject, $message, $headers);
  
function encodeSlowo($s) {
  return "=?iso-8850-2?B?" . base64_encode($s) . "?=";
}
?>


Co mam zrobić? W przyszłości do mojej domeny z "ł" będzie podpięty serwer pocztowy, czy może wtedy da się do zrobić jakoś lepiej? Choć zdecydowanie wolałbym rozwiązać problem wcześniej.
Mlodycompany
z tego co wiem domeny nie mogą mieć polskich znaków
kwiateusz
źle wiesz winksmiley.jpg http://żółw.pl/

i wg tej strony nie wolno używać polskich znaków w adresach mailowych
tiar
Problem rozwiązany:) Dziękiuję Kwiateusz za wskazówkę. Za stroną żółw.pl zacytuję: 

"W przypadku domeny żółw.pl jej przekodowany adres wygląda tak: xn--w-uga1v8h.pl - taka dokładnie nazwa wpisywana jest do serwerów DNS i taką też nazwę przekazują między sobą te serwery."

Idą tym tropem spreparowałem nagłówek, który działa dla mojej domeny.

Przykład dla zółw.pl:

CODE
<?php  
  $headers2 = "From: rejestracja <rejestracja@xn--w-uga1v8h.pl> \n" ;
  $headers2 .= "Reply-To: rejestracja@xn--w-uga1v8h.pl \n";
  $headers2 .= "X-Mailer: PHP/". phpversion()."\n";
  $headers2 .= "MIME-Version: 1.0\n";
  $headers2 .= "Content-type: text/plain; charset=utf-8\n";
  $headers2 .= "Content-Transfer-Encoding: quoted-printable\n";
?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.