2011-11-23 10 views
13

Kiedy wysłać mail z PHP destinatary dostaje nagłówek jak ten:Jak usunąć "via" i nazwę serwera podczas wysyłania wiadomości z PHP?

[email protected] **via** de p3nlhg147.shr.prod.phx3.secureserver.net 

Chcę usunąć „via” część. Większość zautomatyzowanych wiadomości z witryn internetowych nie ma "via", więc na pewno można go usunąć.

Jak oni to robią?

+1

Nie możesz, to serwer pocztowy, a nie php. –

+0

Tak, możesz. Proszę spojrzeć poniżej odpowiedzi. – richard

Odpowiedz

19

Tak, możesz pozbyć się części "via". Oto szczegóły:

1) SPF and DKIM 

Po pierwsze, trzeba by ustawić SPF rekord domeny wysyłanego e-maili od i umożliwić DKIM również. Są one przeznaczone głównie do identyfikacji wiadomości przed spamem.

2) "From: [email protected]" 

Po drugie, upewnij się, że ustawiasz nagłówek "Od:" jako adres e-mail w domenie, z której wysyłasz wiadomości. Nie udawaj, że jesteś kimś innym. Użyj "From: [email protected]", jeśli wysyłasz wiadomości z abc.com, a nie cokolwiek innego, na przykład [email protected] lub [email protected] lub cokolwiek innego. Jeśli chcesz, aby odbiorca odpowiadał na Twój adres e-mail w Gmailu zamiast adresu e-mail domeny, użyj nagłówka "Reply-To:". "Od:" musi zawsze być adresem domeny, z którego wysyłasz wiadomość e-mail.

3) "Return-Path: [email protected]" 

Po trzecie i najważniejsze, ustaw „Return-Path:” nagłówek być taka sama, jak w przypadku domeny „Od:” cel. Użyj 5th parametr funkcji poczty() dla tego:

mail('[email protected]', 'Subject', "Message Body", $headers, '[email protected]') 

Więc Return-Path tej wiadomości będzie „[email protected]” (adres e-mail zaraz po przełącznika -f). Parametr $ headers powinien zawierać wszystkie niezbędne nagłówki wiadomości. Upewnij się, że "Od:" to coś@twojadomena.com.

Po wykonaniu tych kroków i środków Gmail powinien całkowicie ufać wiadomościom z domeny twojadomena.com. Pole "via" w Twoich wiadomościach powinno zniknąć, a pole "wysłane przez" i pole "podpisane przez" powinny być poprawnie wyświetlane jako twoja_domena.com.

Mam nadzieję, że pomoże!

+0

Czy to działa, jeśli serwer pocztowy jest inny niż serwer lokacji? –

+0

Dzięki, działa jak urok ... Użyłem tylko dwóch kroków, 2. i 3. .. dzięki richard ... –

1

Jest to prawdopodobnie dodane przez twój MTA i nie powiedziałeś, którego MTA używasz.

Polecam wysyłanie wiadomości e-mail nie za pomocą funkcji PHP mail(), ale za pośrednictwem protokołu SMTP, być może nawet za pomocą protokołu SMTP-Auth, z użyciem czegoś takiego jak PHPMailer.

7

Też przyniosłem ten sam problem. Ale udało mi się przezwyciężyć ten problem, używając następującego kodu:

mail('[email protected]', 'the subject', 'the message', null,'[email protected]'); 

Upewnij się, że ostatnim parametrem jest -f z adresem e-mail.

Możesz dodać

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";<br /> 
mail('[email protected]', 'the subject', 'the message body in html format', $headers,'[email protected]'); 

do treści wiadomości e-mail w HTML.

1

Zobacz co Google mówi o tym tutaj: http://support.google.com/mail/bin/answer.py?hl=en&ctx=mail&answer=1311182

All the best!

+2

Zamiast po prostu podać link, powinieneś spróbować wyjaśnić treść tego pytania. – Layke

+0

Witamy w Stack Overflow! Chociaż może to teoretycznie odpowiedzieć na pytanie, [byłoby lepiej] (http://meta.stackexchange.com/q/8259) uwzględnić istotne części odpowiedzi tutaj i podać odnośnik do odsyłacza. – Adi

Powiązane problemy