Как изменить заголовки писем с помощью procmail? - PullRequest
0 голосов
/ 17 октября 2018

Мы используем JIRA Cloud для нашей системы тикетов, которая не поддерживает использование псевдонимов электронной почты.Поскольку в нашей системе теперь есть два домена, второй домен добавлен как псевдоним в G Suite (одинаковые имена пользователей для обоих).Руководство решило использовать этот новый домен domain2 в качестве основного адреса FROM для всех пользователей, что вызвало проблемы в нескольких местах, например в JIRA, поскольку мы не можем изменить основной домен в G Suite ИЛИ в JIRA, и могут приходить электронные письмалибо из домена1, либо из домена2.

Поэтому я хотел бы установить фильтр procmail (или эквивалентный), который проверяет учетную запись helpdesk @ email через POP3, а для писем, отправленных с домена1, добавляется «inc».в конце, чтобы он совпадал с доменом 2 в поле заголовков электронной почты и электронной почты FROM, а затем отправил это сообщение на второй адрес электронной почты, который прослушивает JIRA.Он также должен отображаться как приходящий пользователь FROM user @ domain1, а не фактическая учетная запись, отправляющая его (что, как я знаю, требует дополнительной работы на стороне G Suite).

Поскольку JIRA не разрешает ничего из этоговнутренняя обработка электронной почты, это позволило бы JIRA работать должным образом без надстроек, которые могут не выполнять то, что нам нужно, и могут дорого обойтись, поскольку с них взимается ежемесячная плата за пользователя.

Итак, я пытаюсь выяснить, является ли procmail даже самой простой (или лучшей) настройкой для этого (учитывая, что она больше не поддерживается), и какая комбинация агентов будет наиболее легкой для этого.Вариантов так много, но я не уверен, какой из них будет проще всего настроить, или совершенно не знаю, как это сделать.

Как только я узнаю, в каком направлении идти, я смогу понять, как это сделать.заставить это работать.Просто не знаю, с чего начать, каких агентов использовать, как лучше всего подойти к этому.

Спасибо!

1 Ответ

0 голосов
/ 19 октября 2018

Ваш вопрос действительно не о программировании;возможно попробуйте https://serverfault.com/ или https://unix.stackexchange.com/ для частей инфраструктуры.Я сосредоточусь на ответе на вопрос в названии, хотя детали этого вопроса также довольно мутны.

:0fH
* domain1
| sed 's/domain1/domain2/g'

Я предполагаю из вашего описания, что domain1 на самом деле является подстрокой domain2,Если это так, регулярные выражения нужно немного обострить (или вы в конечном итоге замените domain1inc на domain1incinc и т. Д.).В качестве быстрого первого приближения, doman1($|[^i]) будет соответствовать domain1, когда за ним ничего не стоит, или символом, который не i.При замене вы захотите сохранить этот символ, что обычно делается в sed, запоминая его и подставляя его себе.Или вы можете переключиться на Perl, который поддерживает гораздо более богатый диалект регулярных выражений.

:0fH
* domain1($|[^i])
| perl -pe 's/domain1(?!inc)/domain2/g'

Хотя, конечно, ваш реальный вариант использования выглядит более похожим s/domain1.com/domain2.com/g, и в этом случае дополнительный контекст .comСуффикса вполне достаточно, чтобы избежать замены строк, которые должны остаться неизменными, и вы можете безопасно остаться с более простым и, следовательно, более быстрым и, возможно, более безопасным sed.

Опять же, как именно запустить Procmail для входящей электронной почтыВо-первых, это отдельная тема, которая на самом деле не связана с программированием.Если у вас есть Postfix и Procmail на почтовом сервере, достаточно просто создать .procmailrc в домашнем каталоге учетной записи helpdesk.

...