--- 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);
 	}