2010-12-28 2 views
2

Ich benutze die PHP Pear Mail_Mime-Bibliothek, um E-Mails zu senden. In meinem Skript habe ich den Header "From:" vor dem Senden der Nachricht gesetzt. Das funktioniert alles auf einem Server mit Mac OS X (der vermutlich sendmail als Mailer verwendet, obwohl ich mir nicht 100% ig sicher bin). Beim Senden einer Test-E-Mail zeigt das Feld "Von:" den richtigen Absender an.Exim überschreibt "von" Header beim Senden von MIME-E-Mail von PHP

Wenn ich jedoch das gleiche Skript auf einem Linux-Server mit Exim4 als Mailer ausführe, wird die E-Mail immer noch gesendet, aber der Header "From:" wird standardmäßig anstelle der im Skript angegebenen angezeigt.

Ich habe versucht, die Option "-f [von E-Mail-Adresse]" in den "zusätzlichen Parametern" für die Mail-Funktion von PHP einzustellen, aber dies scheint keine Wirkung zu haben.

Kann mir jemand sagen, wie ich den Header von Exim richtig funktionieren könnte?

Jeder Rat wird sehr geschätzt.

Cheers, Tom

EDIT: Hier ist der Code, falls jemand im Blick auf sie interessiert ist.

 

<?php 

    include_once('Mail.php'); 
    include_once('Mail/mime.php'); 


    $subject = "mime mail test"; 
    $from = "[email protected]"; 
    $to = "[email protected]"; 
    $visitor_email = $from; 

    $message = new Mail_mime(); 
    $message->setTXTBody("hallo there!"); 


    $body = $message->get(); 
    $extraheaders = array("From"=>$from, "Subject"=>$subject,"Reply-To"=>$visitor_email); 
    $headers = $message->headers($extraheaders); 

    $mail = Mail::factory("mail"); 
    $result = $mail->send($to, $headers, $body, "", "-f [email protected] -r [email protected]"); 

    print_r($result); 

?> 


 
+1

Versuchen Sie, den Header 'Return-path' explizit auf den gleichen Header wie reply-to und/oder from zu setzen. Auch 'Mail :: send' unterstützt nur die ersten drei Argumente, die Sie liefern, vorausgesetzt, dass Sie die PEAR Mail-Klasse verwenden. – prodigitalson

+0

Ah, danke - das wusste ich nicht über die PEAR Mail Klasse. – Tom

+0

Es ist ein Duplikat von http://stackoverflow.com/questions/4663040/from-email-address-changes-after-email-is-sent-gmail-postfix-relay/ – dkarp

Antwort

4

Sie senden über die Befehlszeile (vs. SMTP). Exim ermöglicht nur vertrauenswürdigen Absendern die Verwendung der Option -f. Entweder:

  • ändern, um es zu verwenden SMTP (die es Ihnen erlaubt zu verwenden, was Absender Ihnen zur Verfügung gestellten wollen Sie dürfen E-Mail an alle senden (was in der Regel bedeutet, IP-basierte oder Authentifizierungs-basierte Steuerungen)
  • Senden von einem Benutzer, der (wie Wurzel oder der exim Benutzer)
  • Fügen Sie den Benutzer sendet die Nachricht an die vertrauenswürdige Benutzerliste in der exim Konfigurationsvertrauenswürdig ist, die wie folgt aussehen würde:

    trusted_users = root: apache : www: exim: 60001

+0

Ich habe versucht sowohl die Trusted_users Ansatz und auch Wechsel zu SMTP, aber das Problem bleibt bestehen. Ich denke, ich habe das Problem entdeckt, dass exim konfiguriert ist, um E-Mails über GMail zu senden, und anscheinend eingerichtet, um alle E-Mails als ein Benutzer zu senden. Ich bin mir jedoch immer noch nicht sicher, was geändert werden muss, um das Problem zu beheben. Trotzdem, vielen Dank für die Info. – Tom

+0

Siehe http://stackoverflow.com/questions/4663040/from-email-address-changes-after-email-is-sent-gmail-postfix-relay/4673989#4673989 – dkarp

Verwandte Themen