diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index 4b97e61867059325d2638eb38a04c7afd8a76eb5..dc41ab0f04bcac8038bfb2704b56055f3e697daa 100644 --- a/src/lib-sieve-tool/sieve-tool.c +++ b/src/lib-sieve-tool/sieve-tool.c @@ -489,6 +489,7 @@ static const struct smtp_address * sieve_tool_get_address(struct mail *mail, const char *header) { struct message_address *addr; + struct smtp_address *smtp_addr; const char *str; if (mail_get_first_header(mail, header, &str) <= 0) @@ -500,7 +501,9 @@ sieve_tool_get_address(struct mail *mail, const char *header) addr->domain == NULL || *addr->mailbox == '\0' || *addr->domain == '\0') return NULL; - return smtp_address_create_temp(addr->mailbox, addr->domain); + if (smtp_address_create_from_msg_temp(addr, &smtp_addr) < 0) + return NULL; + return smtp_addr; } void sieve_tool_get_envelope_data(struct sieve_message_data *msgdata,