It does not make sense to set mailbox without domain on incorrect input.
Rather set display name which is more likely useable value.

Test case:

  test

is parsed as:

  { name = "test", mailbox = NULL, domain = NULL }
---
 src/lib-mail/message-address.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/lib-mail/message-address.c b/src/lib-mail/message-address.c
index 93b7c83..54d4ee1 100644
--- a/src/lib-mail/message-address.c
+++ b/src/lib-mail/message-address.c
@@ -205,6 +205,10 @@ static int parse_mailbox(struct 
message_address_parser_context *ctx)
                /* nope, should be addr-spec */
                ctx->parser.data = start;
                ret = parse_addr_spec(ctx);
+               if (ctx->addr.invalid_syntax && !ctx->addr.name && 
ctx->addr.mailbox && !ctx->addr.domain) {
+                       ctx->addr.name = ctx->addr.mailbox;
+                       ctx->addr.mailbox = NULL;
+               }
        }
 
        if (ret < 0)
-- 
1.7.9.5

Reply via email to