Skip to content

Commit 373293c

Browse files
committed
exmdb_local: don't send OOF for automated messages
References: GXH-152
1 parent 9498dbc commit 373293c

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

include/gromox/mapidefs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ enum { /* for PR_AUTO_RESPONSE_SUPPRESS */
159159
AUTO_RESPONSE_SUPPRESS_NRN = 0x8U,
160160
AUTO_RESPONSE_SUPPRESS_OOF = 0x10U,
161161
AUTO_RESPONSE_SUPPRESS_AUTOREPLY = 0x20U,
162+
163+
AUTO_RESPONSE_SUPPRESS_ALL = 0x2FU, /* Gromox-specific mnemonic */
162164
};
163165

164166
enum { /* bits for PidLidChangeHighlight */

mda/exmdb_local/exmdb_local.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,20 @@ delivery_status exmdb_local_deliverquota(MESSAGE_CONTEXT *pcontext,
365365
auto num = pmsg->proplist.get<const uint32_t>(PR_AUTO_RESPONSE_SUPPRESS);
366366
if (num != nullptr)
367367
suppress_mask = *num;
368+
auto str = pmsg->proplist.get<const char>(PR_INTERNET_PRECEDENCE);
369+
if (str != nullptr) {
370+
if (strcasecmp(str, "bulk") == 0)
371+
suppress_mask |= AUTO_RESPONSE_SUPPRESS_AUTOREPLY | AUTO_RESPONSE_SUPPRESS_OOF;
372+
if (strcasecmp(str, "list") == 0)
373+
suppress_mask |= AUTO_RESPONSE_SUPPRESS_ALL;
374+
}
375+
if (pmsg->proplist.has(PR_LIST_HELP) ||
376+
pmsg->proplist.has(PR_LIST_HELP_A) ||
377+
pmsg->proplist.has(PR_LIST_SUBSCRIBE) ||
378+
pmsg->proplist.has(PR_LIST_SUBSCRIBE_A) ||
379+
pmsg->proplist.has(PR_LIST_UNSUBSCRIBE) ||
380+
pmsg->proplist.has(PR_LIST_UNSUBSCRIBE_A))
381+
suppress_mask |= AUTO_RESPONSE_SUPPRESS_ALL;
368382
auto flag = pmsg->proplist.get<const uint8_t>(PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED);
369383
if (flag != nullptr && *flag != 0) {
370384
b_bounce_delivered = TRUE;

0 commit comments

Comments
 (0)