Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nagłówek "wysłana przez" wiadomości e-mail
Forum PHP.pl > Forum > PHP
lukasz03
Witam!

Jak ustawić nagłówek "wysłana przez" w wiadomości e-mail? Korzystam z funkcji mail().

Nagłówki jakie ustawiłem:

  1. $this->headers .= 'From: ' . $from . "\n";
  2. $this->headers .= 'Reply-to: ' . $replyto . "\n";
  3. $this->headers .= 'X-Mailer: ' . $this->xMailer . "\n";
  4. $this->headers .= "MIME-Version: 1.0\n";
  5. $this->headers .= "Return-Path: " . $replyto . "\n";
  6. $this->headers .= "Return-Receipt-To: " . $replyto . "\n";
  7. $this->headers .= "X-Sender:" . $this->xMailer . "\n";


Lecz żaden z nich nie odpowiada "wysłana przez". I wyświetlana jest nazwa serwera z jakiego został wysłany mail, czyli w moim przypadku cpanel.mserwis.pl.

Jaki nagłówek muszę dodać, aby to zmienić?

Pozdrawiam,
Łukasz.
thek
To spróbuj jeszcze Sender, no i zwróć uwagę by łamanie linii... \n lub \r\n Tutaj często to problem.
lukasz03
Ok, teraz mam:

  1. if (strtoupper(substr(PHP_OS,0,3)=='WIN'))
  2. {
  3. $eol="\r\n";
  4. }
  5. elseif (strtoupper(substr(PHP_OS,0,3)=='MAC'))
  6. {
  7. $eol="\r";
  8. }
  9. else
  10. {
  11. $eol="\n";
  12. }
  13.  
  14. $this->type = $type;
  15. $this->headers .= "From: ". $from.$eol;
  16. $this->headers .= 'Reply-to: ' . $replyto.$eol;
  17. $this->headers .= 'X-Mailer: ' . $this->xMailer.$eol;
  18. $this->headers .= "MIME-Version: 1.0".$eol;
  19. $this->headers .= "Sender:" . $this->xMailer . $eol;


I dalej pokazuje "wysłana przez: cpanel.mserwis.pl"... sad.gif
marcint83
Może lepiej by było skorzystać z klasy np. phpmailer niż samodzielnie się bawić w ustawianie nagłówków...
thek
Weź i obejrzyj mail jaki dostajesz pod kątem nagłówków. Możliwe, że cpanel wymusza zmianę któregoś nagłówka podczas wysyłki. A nawet jeśli nie, to zobaczysz który dokładnie ustawia się na ów cpanel i będziesz wiedział dokładnie który ustawić.
#luq
Ja mam taką funkcję u siebie i działa
  1. function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '') {
  2. $header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=UTF-8' . "\r\n" . 'From: finanse.system <no-reply@wwkk.mikologia.pl>' . "\r\n";
  3. mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
  4. }

Przerób sobie.
piotr94
skorzystaj z phpMailer - nie będzie z tym żadnych problemów
lukasz03
@marcint83, @piotr94: phpmailer, nie wchodzi w grę, bo piszę własną klasę do wysyłania wiadomości e-mail.
@#luq: nagłówki z twojego kodu użyłem już.

@thek: można w cPanelu ustawiać nagłówki jakie są wysyłane z wiadomościami e-mail?

Podejrzałem nagłówki jakie są w wysyłanych wiadomościach. Poniżej są te, które mogą za to odpowiadać:

Kod
Received: from cpanel.mserwis.pl (cpanel.mserwis.pl [93.159.16.132])
        by mx.google.com with ESMTP id h16si6004089bkb.30.2010.08.26.03.23.29;
        Thu, 26 Aug 2010 03:23:30 -0700 (PDT)
Received-SPF: pass (google.com: domain of lukasz@cpanel.mserwis.pl designates 93.159.16.132 as permitted sender) client-ip=93.159.16.132;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of lukasz@cpanel.mserwis.pl designates 93.159.16.132 as permitted sender) smtp.mail=lukasz@cpanel.mserwis.pl
Received: from lukasz by cpanel.mserwis.pl with local (Exim 4.69)
    (envelope-from <lukasz@cpanel.mserwis.pl>)
    id 1OoZc9-0000Gp-JA
    for lukasz.webmaster@gmail.com; Thu, 26 Aug 2010 12:23:22 +0200
X-AntiAbuse: Primary Hostname - cpanel.mserwis.pl
X-AntiAbuse: Sender Address Domain - cpanel.mserwis.pl


Po ustawieniu Primary Hostname i Sender Adress Domain (2 ostatnie) na coś innego, dalej wyświetla: "wysłane przez: cpanel.mserwis.pl". Wydaje mi się, że to może chodzić o to:

Kod
google.com: domain of lukasz@cpanel.mserwis.pl designates 93.159.16.132 as permitted sender"


Jednak jak ustawić ten nagłówek skoro jest on inny dla każdej skrzynki pocztowej?
thek
Radzę przejrzeć co się kryje za słówkiem Received i Received-SPF, bo to one odpowiadają za routing maila w sieci. Uważaj na to drugie, bo błędny Received-SPF może z marszu wywalić Twój mail do kosza jako sfałszowany(!). Skup się na Received więc.
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.