aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/abstract/MCMessageHeader.cpp7
-rw-r--r--src/core/smtp/MCSMTPSession.cpp14
2 files changed, 14 insertions, 7 deletions
diff --git a/src/core/abstract/MCMessageHeader.cpp b/src/core/abstract/MCMessageHeader.cpp
index 1b163638..6d744ece 100644
--- a/src/core/abstract/MCMessageHeader.cpp
+++ b/src/core/abstract/MCMessageHeader.cpp
@@ -721,12 +721,7 @@ struct mailimf_fields * MessageHeader::createIMFFieldsAndFilterBcc(bool filterBc
imfSubject = strdup(data->bytes());
}
}
-
- if ((imfTo == NULL) && (imfCc == NULL) && (imfBcc == NULL)) {
- imfTo = mailimf_address_list_new_empty();
- mailimf_address_list_add_parse(imfTo, (char *) "Undisclosed recipients:;");
- }
-
+
fields = mailimf_fields_new_with_data_all(imfDate,
imfFrom,
NULL /* sender */,
diff --git a/src/core/smtp/MCSMTPSession.cpp b/src/core/smtp/MCSMTPSession.cpp
index cb9b02cb..8187675e 100644
--- a/src/core/smtp/MCSMTPSession.cpp
+++ b/src/core/smtp/MCSMTPSession.cpp
@@ -703,7 +703,8 @@ Data * SMTPSession::dataWithFilteredBcc(Data * data)
struct mailimf_fields * fields = msg->msg_fields;
int col = 0;
-
+
+ int hasRecipient = 0;
str = mmap_string_new("");
for(clistiter * cur = clist_begin(fields->fld_list) ; cur != NULL ; cur = clist_next(cur)) {
struct mailimf_field * field = (struct mailimf_field *) clist_content(cur);
@@ -712,6 +713,17 @@ Data * SMTPSession::dataWithFilteredBcc(Data * data)
clist_delete(fields->fld_list, cur);
break;
}
+ else if ((field->fld_type == MAILIMF_FIELD_TO) || (field->fld_type == MAILIMF_FIELD_CC) || (field->fld_type == MAILIMF_FIELD_BCC)) {
+ hasRecipient = 1;
+ }
+ }
+ if (!hasRecipient) {
+ struct mailimf_address_list * imfTo;
+ imfTo = mailimf_address_list_new_empty();
+ mailimf_address_list_add_parse(imfTo, (char *) "Undisclosed recipients:;");
+ struct mailimf_to * toField = mailimf_to_new(imfTo);
+ struct mailimf_field * field = mailimf_field_new(MAILIMF_FIELD_TO, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, toField, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ mailimf_fields_add(fields, field);
}
mailimf_fields_write_mem(str, &col, fields);
mmap_string_append(str, "\n");