sendmail: use FQDN in default envelope sender
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
Sun, 9 Feb 2014 08:49:36 +0000 (09:49 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 9 Feb 2014 08:49:36 +0000 (09:49 +0100)
RFC 5321 requires the return path to be supplied with a proper domain
name.

Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
mailutils/sendmail.c

index 824109d99fbd5408bcbccbcbcef032cd33921abd..9455b4e7a284de1b168c520e3627b55f3d83cf4f 100644 (file)
@@ -326,7 +326,6 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
        // we should start with modern EHLO
        if (250 != smtp_checkp("EHLO %s", host, -1))
                smtp_checkp("HELO %s", host, 250);
-       free(host);
 
        // perform authentication
        if (opts & OPT_a) {
@@ -353,8 +352,11 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
 
        // got no sender address? use auth name, then UID username as a last resort
        if (!opt_from) {
-               opt_from = G.user ? G.user : xuid2uname(getuid());
+               opt_from = xasprintf("%s@%s",
+                                    G.user ? G.user : xuid2uname(getuid()),
+                                    xgethostbyname(host)->h_name);
        }
+       free(host);
 
        smtp_checkp("MAIL FROM:<%s>", opt_from, 250);