widget/contact: client ip address in received mail header
authorMischa POSLAWSKY <perl@shiar.org>
Mon, 25 Jan 2021 23:35:41 +0000 (00:35 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 26 Jan 2021 01:15:15 +0000 (02:15 +0100)
Do not record technical identification in message body, instead emulate as
mail sender hidden for common consumption.

widget/contact.php

index b2d41cbd9249b164cddc21e4253daab412ead6d8..de059ec4a2405ac46ebc5ca0f35e5a60f74a6233 100644 (file)
@@ -59,6 +59,13 @@ switch ($source) {
        }
        $header = "From: $reply";
 
+       if ($origin = @$_SERVER['REMOTE_ADDR']) {
+               if ($resolved = @gethostbyaddr($origin) and $resolved !== $origin) {
+                       $origin .= sprintf(' (%s)', gethostbyaddr($origin));
+               }
+               $header .= "\r\nReceived: from $origin by $domain{$config['url']}; ".date('r');
+       }
+
        foreach (array(
                'X-Accept-Language' => 'HTTP_ACCEPT_LANGUAGE',
                'User-Agent'        => 'HTTP_USER_AGENT',
@@ -67,12 +74,7 @@ switch ($source) {
                $header .= "\r\n$mailhdr: ".$_SERVER[$serverhdr];
        }
 
-       $origin = $_SERVER['REMOTE_ADDR'];
-       if ($resolved = @gethostbyaddr($origin) and $resolved !== $origin) {
-               $origin .= sprintf(' (%s)', gethostbyaddr($origin));
-       }
-       $body = "Ingevuld vanaf $origin:\r\n\r\n";
-
+       $body = '';
        foreach ($input as $k => $v) {
                $body .= "$k: $v\r\n";
        }