Ответы пользователя по тегу Электронная почта
  • Postfix, скрыть реального отправителя?

    @mezhuev
    Системный администратор
    Смотрите ADDRESS_REWRITING_README, в частности раздел Canonical address mapping.

    Это будет легко реализуемая и корректная замена ivan@domain.ru → support@domain.ru и support@domain.ru → ivan@domain.ru соответственно.

    получатель видит что письмо пришло с support@domain.ru … получатель отвечает на это письмо то оно должно прийти ivan@domain.ru

    А вот здесь уже сложнее. Условный заголовок X-Real-Sender-ID в теле отправленного вами письма никак не попадёт в ответ, который отправит получатель такого письма. Соответственно в нём нет особого смысла. В принципе можно приспособить для этих целей заголовок References, но всё равно придётся писать свой прокси для обработки входящих.

    Адрес, на который будет отправлено письмо при нажатии кнопки «Ответить» задаётся заголовком Reply-To. Но и тут надо понимать, что вы не в силах запретить получателю щёлкнуть по адресу в поле «От» и подготовить ответ на данный адрес или любым иным способом указать support@domain.ru в поле «Кому».

    Так что ваша идея заведомо содержит неустранимые недостатки и выходит за рамки обязанностей МТА. Решать её, по хорошему, надо другими способами. Например, если это служба поддержки, то за приём и отправку писем должна отвечать специализированная система (Jira, YouTrack и т. д.).
    Ответ написан
    2 комментария
  • Как сделать, что бы все письма, с ошибкой в имени получателя, приходили на заданный адрес?

    @mezhuev
    Системный администратор
    Читайте VIRTUAL_README.

    Пример
    Добавить в main.cf:
    virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
    # Популярные ошибки
    ivanov@domain1.com	IvanovA@domain1.com
    
    # Остальное на секретаря
    @domain1.com		secretary@domain1.com

    Выполнить:
    [user@server ~]> postmap /etc/postfix/virtual
    [user@server ~]> systemctl reload postfix


    Обработать по месту напильником.

    Как уже отметили, спам вас завалит с головой. В числе прочих обязательно будут ящики, на которые будет приходить только спам. Есть смысл заблокировать приём почты на эти адреса через smtpd_recipient_restrictions или же использовать их для обучения антиспама (honeypot).

    Разбор через регулярные выражения можно реализовать силами Dovecot через Sieve: Pigeonhole Sieve Interpreter (использование Dovecot в качестве LDA для Postfix обязательно). Но занятие это заведомо неблагодарное.
    Ответ написан
    Комментировать
  • Свой простой ауто-респондер для Postfix'a?

    @mezhuev
    Системный администратор
    Читайте MILTER_README (Postfix before-queue milter support) и FILTER_README (Postfix after-queue content filter). В FILTER_README есть конкретные примеры и под вашу задачу он подходит больше, так как не вносит задержки для стороннего отправителя (обработка письма происходит после закрытия SMTP-сессии).
    Ответ написан
    Комментировать
  • Какой есть простой класс для работы с почтой на php?

    @mezhuev
    Системный администратор
    Есть вариант для тех, у кого свой свой сервер (физический или виртуальный) и кому достаточно функционала встроенной функции mail().
    1. Подключаемся к серверу по SSH и устанавливаем пакет msmtp.
      • CentOS: yum install msmtp, предварительно может потребоваться подключить репозиторий EPEL: yum install epel-release
      • Ubuntu: apt install msmtp
      • FreeBSD: pkg install mail/msmtp или, если предпочитаете порты: portmaster mail/msmtp

    2. Создаёте файл конфигурации, где прописываете параметры подключения к почтовому серверу, включая используемую учётную запись. Файл может располагаться в домашнем каталоге пользователя ~/.msmtpr или же быть одним на всю систему:
      • CentOS и Ubuntu: /etc/msmtprc
      • FreeBSD: /usr/local/etc/msmtprc

      Пример для Яндекса:
      account default
      host smtp.yandex.ru
      port 465
      from site@example.com
      auth plain
      user site@example.com
      password Pa$$w0rD
      tls on
      tls_certcheck off

      Полный список параметров и их подробное описание доступно по man msmtp.
      Примечание: вместо tls_certcheck лучше использовать tls_trust_file.
    3. Вносим изменения в файл php.ini:
      • CentOS, файл /etc/php.ini:
        sendmail_path = /usr/bin/msmtp -t
      • Ubuntu, файл /etc/php/fpm/php.ini или /etc/php/apache2/php.ini:
        sendmail_path = /usr/bin/msmtp -t
      • FreeBSD, файл /usr/local/etc/php.ini:
        sendmail_path = /usr/local/bin/msmtp -t

    Ответ написан