X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fsmtp.php;h=4c273614e558e85069bcdaf065cf4aee734667b6;hb=e9f8ea4ecb40efdb6f19631f8359ebd1fbf588be;hp=8b81c90c26c1745623370a4cb29d292f9c357570;hpb=78e230b7e7fe44b74208dd12465a5b9862eec0c3;p=squirrelmail.git diff --git a/functions/smtp.php b/functions/smtp.php index 8b81c90c..4c273614 100644 --- a/functions/smtp.php +++ b/functions/smtp.php @@ -109,7 +109,8 @@ function write822Header ($fp, $t, $c, $b, $subject, $more_headers) { global $REMOTE_ADDR, $SERVER_NAME, $REMOTE_PORT; global $data_dir, $username, $domain, $version, $useSendmail; - global $default_charset; + global $default_charset, $HTTP_VIA, $HTTP_X_FORWARDED_FOR; + global $REMOTE_HOST; // Storing the header to make sure the header is the same // everytime the header is printed. @@ -142,11 +143,24 @@ /* Create a message-id */ $message_id = "<" . $REMOTE_PORT . "." . $REMOTE_ADDR . "."; - $message_id .= time() . "@" . $SERVER_NAME .">"; + $message_id .= time() . ".squirrel@" . $SERVER_NAME .">"; /* Make an RFC822 Received: line */ - $header = "Received: from $REMOTE_ADDR by $SERVER_NAME with HTTP; "; - $header .= "$date\r\n"; + if (isset($REMOTE_HOST)) + $received_from = "$REMOTE_HOST ([$REMOTE_ADDR])"; + else + $received_from = $REMOTE_ADDR; + + if (isset($HTTP_VIA) || isset ($HTTP_X_FORWARDED_FOR)) { + if ($HTTP_X_FORWARDED_FOR == "") + $HTTP_X_FORWARDED_FOR = "unknown"; + $received_from .= " (proxying for $HTTP_X_FORWARDED_FOR)"; + } + + $header = "Received: from $received_from\r\n"; + $header .= " (SquirrelMail authenticated user $username)\r\n"; + $header .= " by $SERVER_NAME with HTTP;\r\n"; + $header .= " $date\r\n"; /* Insert the rest of the header fields */ $header .= "Message-ID: $message_id\r\n"; @@ -467,7 +481,7 @@ writeBody ($imap_stream, $body); sqimap_append_done ($imap_stream); } - + sqimap_logout($imap_stream); // Delete the files uploaded for attaching (if any). deleteAttachments(); }