]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
deliver: If -a parameter isn't given, fallback to Envelope-To: header and user@hostname.
authorTimo Sirainen <tss@iki.fi>
Sat, 13 Dec 2008 12:28:28 +0000 (14:28 +0200)
committerTimo Sirainen <tss@iki.fi>
Sat, 13 Dec 2008 12:28:28 +0000 (14:28 +0200)
--HG--
branch : HEAD

src/deliver/deliver.c

index a3efc4fe0d9ed964225b8fdf42e495f5c57a92fc..dcaab488a853452b27147cd40f4a782ac6ff48f5 100644 (file)
@@ -1002,8 +1002,6 @@ int main(int argc, char *argv[])
                putenv_extra_fields(&extra_fields);
                pool_unref(&userdb_pool);
        }
-       if (destaddr == NULL)
-               destaddr = user;
 
        /* Fix namespaces with empty locations */
        for (i = 1;; i++) {
@@ -1108,6 +1106,15 @@ int main(int argc, char *argv[])
        mail = mail_alloc(t, 0, headers_ctx);
        mail_set_seq(mail, 1);
 
+       if (destaddr == NULL) {
+               destaddr = deliver_get_address(mail, "Envelope-To");
+               if (destaddr == NULL) {
+                       destaddr = strchr(user, '@') == NULL ? user :
+                               t_strconcat(user, "@",
+                                           deliver_set->hostname, NULL);
+               }
+       }
+
        storage = NULL;
        default_mailbox_name = mailbox;
        if (deliver_mail == NULL)