--- a/ssmtp.c +++ b/ssmtp.c @@ -1338,6 +1338,7 @@ ssmtp() -- send the message (exactly one int ssmtp(char *argv[]) { char b[(BUF_SZ + 2)], *buf = b+1, *p, *q; + char *remote_addr; #ifdef MD5AUTH char challenge[(BUF_SZ + 1)]; #endif @@ -1541,6 +1542,10 @@ int ssmtp(char *argv[]) outbytes += smtp_write(sock, "From: %s", from); } + if(remote_addr=getenv("REMOTE_ADDR")) { + outbytes += smtp_write(sock, "X-Originating-IP: %s", remote_addr); + } + if(have_date == False) { outbytes += smtp_write(sock, "Date: %s", arpadate); }