Назад | Перейти на главную страницу

postfix ретранслирует всю почту через проблемы office365

Это довольно длинный вопрос с длинным списком проверенных вещей и трудностей, поэтому, пожалуйста, потерпите меня. Резюме таково.

  1. Я могу ретранслировать электронную почту из ubuntu через office365, используя postfix; конфигурация работает.
  2. Он работает только как один из пользователей; более конкретно, пользователь, который аутентифицируется с помощью office365, является единственным действительным "от"

Более подробная информация приведена ниже. У меня есть машина в облаке Amazon, на которой я выполняю кучу заданий и хочу, чтобы статусы отправлялись мне по почте. Я использую office365 на работе, поэтому хочу пересылать почту через office365. Я больше всего знаком с постфиксом, поэтому использовал его как MTA.

Конфигурация ubuntu 12.04LTS; Я установил postfix и mail-утилиты.

В этом примере позвольте мне сказать, что моя компания "company.com"и рассматриваемая машина (через эластичный IP-адрес и запись DNS) называется"plaything.company.com". hostname установлено на"plaything.company.com", так это /etc/mailname

На игрушке у меня зарегистрированы следующие пользователи alpha, bravo, и charlie.

У меня есть следующие файлы конфигурации.

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = ipv4
mailbox_size_limit = 0
mydestination = plaything.company.com, localhost.company.com, , localhost
myhostname = plaything.company.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = [smtp.office365.com]:587
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Как машина называется plaything.company.com Я выполнил упражнение по регистрации всех соответствующих записей DNS, чтобы office365 узнал, что я принадлежу plaything.company.com и позволил мне создать пользователя с именем daemon@plaything.company.com в office365.

В office365 я настраиваю daemon@plaything.company.com как имеющий другой адрес электронной почты alpha@company.com.

Затем я сделал следующее sender_canonical

alpha@plaything.company.com alpha@company.com

Я создал файл sasl_passwd, который гласит:

smtp.office365.com daemon@plaything.company.com:123456password123456

скажем так, что пароль для daemon@plaything.company.com является 1234...456

После всех этих настроек войдите как alpha и

mail bravo@company.com
Cc:
Subject: test
test

и все это прекрасно работает. электронная почта отправляется с помощью постфикса, TLS работает как чемпион, аутентифицируется как daemon@... а bravo@company.com в Office365 получает сообщение электронной почты.

Проблема возникает при входе в систему как bravo к машине.

отправитель bravo@plaything.company.com и office365 говорит:

status=bounced (host smtp.office365.com[132.245.12.25] said: 
550 5.7.1 Client does not have permissions to send as 
this sender (in reply to end of DATA command))

это потому, что я пытаюсь отправить почту как bravo@... и аутентификация в office365 как daemon@.... Причина, по которой это работает alpha@... потому что в office365 я настраиваю daemon@plaything.company.com как имеющий другой адрес электронной почты alpha@company.com.


В Postfix Relay в Office365, Майлз Эриксон отвечает на вопрос так:

  1. Не отправляйте почту в Office365 как пользователь из своего почтового домена, размещенного в Office365. Вместо этого используйте субдомен, например address@services.mydomain.com вместо address@mydomain.com. Не повредит настроить запись SPF для services.mydomain.com или того, что вы решите использовать.

  2. Не проходите аутентификацию на mail.messaging.microsoft.com как пользователь Office365. Просто подключитесь к порту 25 и доставьте почту в свой домен, как это сделал бы любой внешний SMTP-агент.

Хорошо, я сделал №1, у меня есть эти записи в DNS, но по большей части они не актуальны, если Office365 признает, что домен принадлежит мне.

Вот эти записи:

Записи CNAME: - msoid.plaything.company.com - autodiscover.plaything.company.com

Запись MX: - plaything.company.com (plaything-company-com.mail.protection.outlook.com)

Запись TXT: - plaything.company.com (v = spf1 include: spf.protection.outlook.com -all)

Я пробовал №2, но, что бы я ни делал, office365 просто отбрасывает соединение со словами «не аутентифицировано». Я могу попробовать даже простой Telnet на порт 25 и попытаться отправить, но он не работает.

250 BY2PR01CA007.outlook.office365.com Hello [54.221.245.236] 
530 5.7.1 Client was not authenticated 
Connection closed by foreign host.

Есть ли кто-нибудь, у кого есть такая конфигурация, когда несколько пользователей на Linux-машине могут ретранслировать почту с помощью postfix через office365? Должен быть кто-то, кто сделает это, кто может сказать мне, что не так с моей настройкой ...

Думаю, нужно сделать шаг назад :)

Если вы вошли в систему plaything так как bravo, вам действительно нужно, чтобы вся почта, отправляемая с игрушки, отправлялась как bravo@company.com? Если нет, просто отправьте всю почту как daemon@company.com, видеть Postfix на хостах без реального имени хоста в Интернете.

Если вы не можете применить это, вам понадобится Карты SASL, зависящие от отправителя. Это добавит сложности вашей настройке, поэтому я бы очень постарался этого избежать.

И последнее, но не менее важное: если plaything будет отправлять письма как user@service.company.com, вам нужно настроить myhostname и / или myorigin а также избавиться от relayhost настройка. В таком случае, plaything доставляет всю почту напрямую, со всеми плюсами и минусами, такими как репутация почтового сервера и так далее.