2013-07-26 14 views
7

To jest mój kod:PHP Mail() jak ustawić nadawcy poczty

$to = '[email protected]'; 

$subject = 'test'; 

$body = 'test'; 

$header = 'MIME-Version: 1.0' . "\r\n"; 
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$header .= "To: <$to>" . "\r\n"; 
$header .= 'From: [email protected] \r\n'; 

mail($to, $subject, $body, $header); 

Kod działa, wysyła e-mail. Ale nadawca nie jest tym, który zdefiniowałem. Nadajnik wydaje się być hostem poczty internetowej. Co robię źle?

+0

możliwe duplikat [Zmień nazwę nadawcy poczty php zamiast [email protected]] (http://stackoverflow.com/questions/8365754/change-the-sender-name-php-mail-instead-of-sitenamehostname-com) –

+0

Spróbuj dodać 'Reply-to' z tym samym adresem e-mail co' From' . – DevlshOne

+1

Nawiasem mówiąc, \ r \ nw nagłówku From w powyższym przykładzie nie będzie konwertować na sekwencję nowej linii, ponieważ używasz pojedynczych cudzysłowów. Nie wiem, czy to jest twój cały problem, ale prawdopodobnie to nie pomaga :) –

Odpowiedz

19

Spróbuj ustawić nadawcę koperty, a także ustalenie nadawcy w nagłówkach wiadomości, tak jak poniżej:

$to = "[email protected]"; 
$from = "[email protected]"; 
$subject = "subject"; 
$message = "this is the message body"; 

$headers = "From: $from"; 
$ok = @mail($to, $subject, $message, $headers, "-f " . $from); 
+0

To nic nie zmieniło. Zmieniając mój oryginalny kod na $ header. = "Reply-to: [email protected] \ r \ n" ;, teraz odbieram pocztę z "noreply". Ale wiadomość, którą otrzymuję, pochodzi z adresu [email protected] zamiast [email protected] Jakieś pomysły? – user1885099

+0

Dziwne, że to nie rozwiązało problemu. W swoim php.ini, jakie są twoje ustawienia dla sendmail_from i sendmail_path? – mti2935

+0

Używam płatnego hosta, nie jestem pewien, jak i czy mogę uzyskać dostęp do php.ini – user1885099

Powiązane problemy