re2 regex для сопоставления писем, не доставленных списком рассылки gapps
В течение некоторого времени я пытался написать регулярное выражение, чтобы оно соответствовало тем электронным письмам, которые не доставляются в списке рассылки Служб Google.
У меня есть некоторые изменения в маршрутизации отправки на нашем домене, которые добавляют дополнительного получателя ко всей исходящей электронной почте - список рассылки management@domain.co.uk
, Проблема заключается в том, что список рассылки также добавляется во время доставки в указанный список рассылки, создавая циклы сообщений, которые заканчиваются пересылкой сообщений.
Просматривая журналы сообщений, я вижу, что доставка списка рассылки происходит от отправителя. management+bncBAABBB6J6WGAKGQEEL6JVVI@domain.co.uk
(где BAABBB6J6WGAKGQEEL6JVVI
случайный каждый раз).
Мне нужно регулярное выражение, которое будет сопоставлять электронные письма, которые не приходят из этого списка рассылки, так что дополнительный получатель добавляется только к электронным письмам, отправленным пользователями. Единственные параметры в настройках для маршрутизации отправки: "Выполнить этот параметр, только если отправитель конверта совпадает:", а затем поле для регулярного выражения. Так что я хочу, чтобы есть регулярное выражение, которое соответствует всему, что не management+bnc.....@domain.co.uk
,
GApps использует синтаксис регулярных выражений re2. Пока у меня есть ((management\+bnc)(.*?))(@domain\.co\.uk)
который успешно соответствует management+bncBAABBB6J6WGAKGQEEL6JVVI@domain.co.uk
но я не могу понять, как отрицать management+bncBAABBB6J6WGAKGQEEL6JVVI
часть, чтобы соответствовать только те письма, не из этого списка рассылки.
1 ответ
Возможно, это слишком просто для того, что вы делаете, но если вы можете изолировать эту строку, она всегда начинается с "management+bnc", и случайные биты всегда имеют одинаковую длину (в данном случае 23 цифры), вы можете просто вытащить подстроку...
string substring = yourstring.Substring(14, 23);
string newEmail = yourstring.Replace(substring, "");