From: Timo Sirainen Date: Sat, 13 Dec 2008 12:28:28 +0000 (+0200) Subject: deliver: If -a parameter isn't given, fallback to Envelope-To: header and user@hostname. X-Git-Tag: 1.2.alpha5~18 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5144b3b581a6e280690756c6eff813c5be8b0a69;p=thirdparty%2Fdovecot%2Fcore.git deliver: If -a parameter isn't given, fallback to Envelope-To: header and user@hostname. --HG-- branch : HEAD --- diff --git a/src/deliver/deliver.c b/src/deliver/deliver.c index a3efc4fe0d..dcaab488a8 100644 --- a/src/deliver/deliver.c +++ b/src/deliver/deliver.c @@ -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)