changeset 8538:19e05e1bcb5c HEAD

deliver: If -a parameter isn't given, fallback to Envelope-To: header and user@hostname.
author Timo Sirainen <tss@iki.fi>
date Sat, 13 Dec 2008 14:28:28 +0200
parents 1e913c30c1ed
children 280c92d3a80c
files src/deliver/deliver.c
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/deliver/deliver.c	Sat Dec 13 13:59:56 2008 +0200
+++ b/src/deliver/deliver.c	Sat Dec 13 14:28:28 2008 +0200
@@ -1002,8 +1002,6 @@
 		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 @@
 	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)