Я хочу, чтобы нелокальные электронные письма передавались через мою личную учетную запись Google, а локальные - для локального пользователя. Моя конфигурация: / etc / postfix / transport
* smtp:[smtp.gmail.com]:587
и /etc/postfix/main.cf
[root@media postfix]# cat main.cf
# This file contains only the parameters changed from a default install
# see /etc/postfix/main.cf.dist for a commented, fuller version of this file.
transport_maps = hash:/etc/postfix/transport
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
/ и т.д. / постфикс / sasl_passwd:
[smtp.google.com]:587 myuser@gmail.com:mypass
И после бега:
# postmap transport && postmap sasl_passwd
systemctl restart postfix.service
Итак, теперь мой сервер пытается подключиться к gmail MX (безуспешно, но не доставляет электронную почту локально.
Журналы из journalctl:
Jul 06 18:38:01 media postfix/pickup[31431]: 30714960F8: uid=0 from=<root>
Jul 06 18:38:01 media postfix/cleanup[31641]: 30714960F8: message- id=<20130706163801.30714960F8@media.localdomain>
Jul 06 18:38:01 media postfix/qmgr[31432]: 30714960F8: from=<root@media.localdomain>, size=436, nrcpt=1 (queue active)
Jul 06 18:38:01 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6c]:587: Network is unreachable
Jul 06 18:38:01 media postfix/smtp[31643]: 30714960F8: to=<mackowiakp23@gmail.com>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.7, delays=0.03/0.04/0.55/0.07, ...M command))
Jul 06 18:38:02 media postfix/cleanup[31641]: 0B85D960F9: message-id=<20130706163802.0B85D960F9@media.localdomain>
Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: from=<>, size=2555, nrcpt=1 (queue active)
Jul 06 18:38:02 media postfix/bounce[31646]: 30714960F8: sender non-delivery notification: 0B85D960F9
Jul 06 18:38:02 media postfix/qmgr[31432]: 30714960F8: removed
Jul 06 18:38:02 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6d]:587: Network is unreachable
Jul 06 18:38:02 media postfix/smtp[31643]: 0B85D960F9: to=<root@media.localdomain>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.59, delays=0.02/0.01/0.51/0.06,...M command))
Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: removed
Jul 06 18:38:40 media auth[31778]: pam_tcb(dovecot:auth): Authentication passed for media from (uid=0)
Jul 06 18:38:40 media dovecot[1442]: pop3-login: Login: user=<media>, method=PLAIN, rip=192.168.0.2, lip=192.168.0.7, mpid=31779, secured, session=<VZaXcdrgpADAqAAC>
Jul 06 18:38:40 media dovecot[1442]: pop3(media): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
Jul 06 18:38:58 media postfix/pickup[31431]: CD15D960F8: uid=0 from=<root>
Jul 06 18:38:58 media postfix/cleanup[31641]: CD15D960F8: message-id=<20130706163858.CD15D960F8@media.localdomain>
Jul 06 18:38:58 media postfix/qmgr[31432]: CD15D960F8: from=<root@media.localdomain>, size=430, nrcpt=1 (queue active)
Jul 06 18:38:59 media postfix/smtp[31643]: CD15D960F8: to=<mackowiakp@op.pl>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.63, delays=0.02/0/0.54/0.06, dsn=5.5....M command))
Jul 06 18:38:59 media postfix/cleanup[31641]: BAB0E960F9: message-id=<20130706163859.BAB0E960F9@media.localdomain>
Jul 06 18:38:59 media postfix/qmgr[31432]: BAB0E960F9: from=<>, size=2541, nrcpt=1 (queue active)
Jul 06 18:38:59 media postfix/bounce[31646]: CD15D960F8: sender non-delivery notification: BAB0E960F9
Jul 06 18:38:59 media postfix/qmgr[31432]: CD15D960F8: removed
Jul 06 18:39:00 media postfix/smtp[31643]: BAB0E960F9: to=<root@media.localdomain>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.66, delays=0.02/0.01/0.56/0.07,...M command))
Jul 06 18:39:00 media postfix/qmgr[31432]: BAB0E960F9: removed
Любая помощь, чтобы заставить его работать?
Вы должны включить TLS
в SMTP-клиенте Postfix, поскольку это требуется Google. Об этом они говорят в сообщении Must issue a STARTTLS command
.
В /etc/postfix/main.cf
, вы хотите что-то вроде этого:
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
а затем в /etc/postfix/tls_policy
:
[smtp.gmail.com]:587 encrypt
Левая сторона в tls_policy
должен выглядеть точно так же, как запись вашего ретранслятора в main.cf
.
Не забудьте бежать postmap
на /etc/postfix/tls_policy
после создания или изменения по мере необходимости.
Вы можете найти более подробную информацию в документации Postfix по TLS.
Обратитесь по этим ссылкам
Я использую для этого следующую процедуру:
sudo apt-get install postfix.
Если он спрашивает, какой тип почтового сервера у вас установлен, выберите вариант без конфигурации (первый вариант).
sudo nano /etc/postfix/main.cf
и вставьте это в
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
# listen on localhost only
inet_interfaces = 127.0.0.1
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
#Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
Сохраните файл, теперь мы создаем файл с именем пользователя и паролем в
sudo nano /etc/postfix/sasl_passwd
и вставьте следующее, сделав необходимые замены
[smtp.gmail.com]:587 user.name@gmail.com:password
Сохраните его и в командной строке
sudo postmap /etc/postfix/sasl_passwd
затем
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
В заключение,
sudo service postfix restart
Обратите внимание, что после успешного тестирования системы электронной почты вы можете удалить / скрыть пароль в sasl_passwd.
Протестируйте это с вашим приложением. Если у вас возникли проблемы, проверьте /var/log/mail.log. Вы можете apt-get install mail-utils, чтобы он установил почтовую программу. затем вы можете протестировать с
echo “this is a test” | mailx -s “This is the subject” destination@example.com
в заключение
Бегать
newaliases
чтобы создать файл /etc/aliases.db. Если вы этого не сделаете, он будет записывать много ошибок об этом в /var/log/mail.err. Если вы получите ошибки SASL (постфикс), проверьте, что имя хоста находится в / etc / hosts и / etc / hostname Если postfix жалуется на то, что нет возможность ретрансляции для данного хоста / IP-адреса (постфикс) Добавьте это в /etc/postfix/main.cf
mynetworks = 10.0.0.0/8
Это позволит любому, у кого есть адрес 10.0.0.0, подключиться, очевидно, вам следует как можно сильнее закрепить это, либо ограничив сеть, и / или используя любой доступный вам брандмауэр или политику безопасности.
Во-первых, обязательно проверьте первый метод аутентификации Google:
https://www.google.com/settings/security/lesssecureapps
Если страница недоступна для вашей учетной записи, то администратор домена отключил эту настройку для всех пользователей (по умолчанию).
Когда вы заносите в белый список свой IP / диапазон в Relay SMTP в администраторе Google, вы можете отправлять электронные письма с этими настройками
relayhost = [smtp-relay.gmail.com]:587
smtp_use_tls = yes
smtp_tls_loglevel=1
smtp_tls_security_level=encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = login, plain
smtp_tls_CApath = /etc/ssl/certs
smtp_sasl_tls_security_options = noanonymous
Однако когда Allow less secure apps: OFF
Я всегда получал такие сообщения:
(SASL authentication failed; server smtp-relay.gmail.com[173.194.204.28] said: 534-5.7.14
... Please log in via your web browser and?534-5.7.14 then try again.?534-5.7.14
Learn more at?534 5.7.14 https://support.google.com/mail/answer/78754 g133sm1077601qkb.1 - gsmtp)
но сообщения по-прежнему доставлялись (что немного странно), хотя доставка сообщения получателю заняла немного больше времени.