Использование Ubuntu в качестве SMTP-сервера для Gmail

Может ли кто-нибудь указать мне руководство по использованию Postfix (или аналогичного) для отправки электронной почты в качестве SMTP-сервера для Gmail.

У меня несколько доменов, и все сообщения электронной почты заканчиваются в Gmail, но Google изменил свою политику некоторое время назад, чтобы перестать позволять пользователям отправлять электронную почту из нескольких доменов - теперь они настаивают на том, что у вас есть собственный SMTP-сервер. У меня есть Ubuntu VPS, который я использую для веб-хостинга, есть ли причина, по которой я не мог использовать его в качестве SMTP-сервера для Gmail?

3
задан 5 September 2017 в 17:27

2 ответа

Примечание: этот ответ написан для сервера 16.04, но может быть адаптирован для 14.04 в случае необходимости (замена systemctl ... команды с правильной [зг19] команды.)

это очень сложная задача в настройке. Есть куча отдельных важных деталей, но есть четыре основных компонентов установки здесь, которые тоже 'безопасной':

Интернет-провайдер системы используется (жилого ИПС, как правило, "плохо", для этого, вы собираетесь хотите что-то в центре обработки данных либо виртуальный выделенный сервер или облако aws экземпляр ec2, или что-то подобное) в принципе, не использовать собственные сети для этого. Настройка SMTP-сервера еще куда-то, как Amazon ЕС2. Тем не менее, я настоятельно рекомендую взять отдельный сервер от куда-то, где можно установить rDNS IP-адреса для сопоставления прямого преобразования, вы будете иметь, чтобы установить. Мы коснемся позже на DNS. Сама система (закрыта СШ, брандмауэры и т. д.) Нам нужно очень многое настроить систему, чтобы запретить подключения на порт 25 и без SSL. Мы также должны просто блокировать систему. Мы сделаем этот шаг последний, после того, как мы убедитесь, что остальное работает. Постфикс МТА это предоставляет SMTP. Мы в конечном счете не нужно, чтобы доставить почту в любом месте, поэтому нам не нужно это как MX-запись вашего сайта в DNS, но нам надо еще кое-что настроить, нужна запись для хоста, и нам нужна обратная запись DNS для сопоставления (отсюда и предположение о фактическом ВПС вместо экземпляра ec2). Голубятня ядра обычно мы считаем Голубятню, чтобы быть поставщиком услуг POP3 или IMAP, но dovecot-core по себе могут быть использованы для предоставления sasl для серверной части, которая работает без проблем, и взаимодействует с пользователями системы. Это все мы используем Голубятню, но нам нужно изменить некоторые настройки.

я не буду касаться в точке #1, потому что я не могу контролировать это. Я очень[!однако Д3] даст вам рекомендации о том, как установить вещи. Мы собираемся сделать это в другом порядке из вышеуказанного списка, но мы все равно все это закончить.

Голубятня ядро

[клавиши f21] будет использоваться для sasl для бэкэнда. Есть несколько вещей, позже нам понадобится для работы с для 'безопасного' отправки почты, но мы можем начать настройку dovecot с бэкэнда.

сначала установите dovecot-core:

sudo apt-get install dovecot-core

далее нам нужно внести некоторые изменения в /etc/dovecot/conf.d/10-auth.conf.

давайте отключить текстовый проверки подлинности, и требовать SSL для учетных данных. В конечном счете, не важно с постфиксом -> голубятню, но это хороший шаг сделать.

Примечание: этот ответ написан для сервера 16.04, но может быть адаптирован для 14.04 при необходимости (замена systemctl ... команды с правильной [зг19] команды.)

заменить на: [f25 привод датчика]

найти: #disable_plaintext_auth = yes

заменить на: [f25 привод датчика]

заменить на: auth_mechanisms = plain login

далее мы должны включить механизм "вход" авт.

[d43 см.] [dрайвер d41]заменить на: auth_mechanisms = plain login[!dрайвер d41] # Postfix smtp-auth #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} изменить, чтобы быть: # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } [!d43 см.] [и D40]найти: auth_mechanisms = plain[!и D40]

тогда нам надо отредактировать файл /etc/dovecot/conf.d/10-master.conf.

изменить, чтобы быть:

passdb { driver = pam # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>] # [cache_key=<key>] [<service name>] #args = dovecot } изменить, чтобы быть: passdb { args = %s driver = pam # [session=yes] [setcred=yes] [failure_show_msg=yes] # [max_requests=> <n>] # [cache_key=<key>] [<service name>] #args = dovecot }

найти:

sudo systemctl restart dovecot

Постфикс

это включает проверку подлинности Постфикс бэкэнда sasl в Голубятню.

, наконец, за Голубятней, мы должны изменить /etc/dovecot/conf.d/auth-system.conf.ext:

sudo apt-get install postfix ssl-cert

найти:

как только это сделано, мы сможем перезапустить процесс Голубятня:

[о d54]теперь, за фактический SMTP и прочее. Это не так трудно настроить как Голубятня хех.[!о d54] smtp inet n - y - - smtpd

во-первых, установить postfix и пакет ssl-cert которая позволит создать основной самозаверяющий сертификат, который является старт достаточно для работы с SSL-защита для sasl авторизации для SMTP-клиенты:

[F9] и [размером d57]при запросе Постфикс типы сайтов, просто выберите "интернет-сайт".[!размером d57] submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_wrappermode=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes # -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,check_policy_service unix:private/policy-spf,reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_reject_unlisted_recipient=yes -o milter_macro_daemon_name=ORIGINATING -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth

как только это будет сделано, мы должны внести некоторые изменения в файлы Постфикс.

Найди эту строку:

sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.dist

Добавить ниже этих строк, так что линия выглядит, как это с помощью двух дополнительных строк ниже:

# 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 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) 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 readme_directory = no # TLS parameters smtpd_use_tls=yes smtpd_tls_security_level=may smtpd_tls_auth_only=no smtp_tls_note_starttls_offer=yes # Use an actual certificate. smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # Use an actual key. smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3 smtpd_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_mandatory_ciphers = medium smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes tls_random_source = dev:/dev/urandom #tls_medium_cipherlist = AES128+EECDH:AES128+EDH smtpd_client_connection_rate_limit = 50 anvil_rate_time_unit = 120s smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_policy_service unix:private/policy-spf # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination myhostname = mail.somedomain alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = $myhostname somedomain mail.somedomain localhost.somedomain localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all local_recipient_maps = proxy:unix:passwd.byname $alias_maps milter_protocol = 2 milter_default_action = accept queue_directory = /var/spool/postfix

также существует огромный раздел, начинающийся с submission, что закомментировано. Возьмите целый раздел, раскомментируйте этот раздел, и сделать его похожим на этот:

теперь это настроены, мы должны теперь изменять основные настройки, путем редактирования [f32 из].

[d63, как]во-первых, двигаться /etc/postfix/main.cf для /etc/postfix/main.cf.dist:[!d63, как] [от f13] [d64 с]далее, поместите следующий текст в новый файл. Убедитесь, что для обновления названий и имен доменов, по крайней мере один из ваших доменов:[!d64 с]

нам нужен пользователю auth с хоть.

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

обратите внимание, что я рекомендую вам SSL-сертификат только на почтовом сервере, или если у вас есть шаблон сертификата для одного из ваших доменов и установить mailname к домену в этот сертификат. Таким образом, Вы не используете самозаверяющий SSL-сертификатов для SSL/TLS-шифрование на связи. Просто мои два цента, вы все еще можете использовать самоподписанный для большинства вещи, если все, что вы делаете отправки электронной почты с SMTP-клиент, таких как Google отправлять письма как функция.

sudo useradd --create-home --user-group --shell /usr/sbin/nologin authsmtpuser

после того как вы закончили, мы должны остановить а затем начать процесс Постфикс:

sudo passwd authsmtpuser [г70]мы теперь должны быть хорошо идти с postfix и sasl Голубятню.[!г70]

теперь мы можем проверить вещи.

мы не создали пользователя, и у вас есть только несколько вариантов. В нашем случае, мы собираемся создать т пользователей для этой цели проверку подлинности SMTP.

#!/usr/bin/env python3 import email.utils as emailutils import smtplib from email.mime.text import MIMEText DESTINATION_ADDRESS = 'your-address@gmail.com' SOURCE_ADDRESS = 'smtp-test@yourdomain.com' SMTP_USERNAME = 'authsmtpuser' SMTP_PASSWORD = 'your password' SMTP_SERVER_ADDR = 'ip.add.re.ss' SMTP_SERVER_PORT = 587 # Don't change this. # Construct a test message. msg = MIMEText("This is a test message from your custom SMTP server!") msg['To'] = DESTINATION_ADDRESS msg['From'] = SOURCE_ADDRESS msg['Date'] = emailutils.formatdate(localtime=True) msg['Message-ID'] = emailutils.make_msgid() msg['Subject'] = "SMTP Server Mail Testing" try: print ("Establishing SMTP connection with SSL...") conn = smtplib.SMTP_SSL(SMTP_SERVER_ADDR, SMTP_SERVER_PORT) print ("Established connection.") except Exception as e: print ("Could not establish SMTP connection. Error was:\n%s" % str(e)) exit(1) try: print ("Attempting to authenticate...") (_, response) = conn.login(SMTP_USERNAME, SMTP_PASSWORD) if 'Authentication successful' in response.decode('utf-8'): print ("Authenticated with SMTP server successfully.") else: print ("Could not authenticate with server, response was: %s" % response.decode('utf-8')) exit(2) except Exception as e: print ("Could not authenticate with SMTP. Error was:\n%s" % str(e)) try: print ("Sending test message to [%s] from [%s] with subject [%s]..." % (DESTINATION_ADDRESS, SOURCE_ADDRESS, msg['Subject'])) conn.sendmail(SOURCE_ADDRESS, DESTINATION_ADDRESS, msg.as_string()) print ("Message queued for sending, please check your destination email inbox and junk folders for the message.") except Exception as e: print ("Could not send email. Error was:\n%s" % str(e)) exit(3) exit(0)

мы собираемся создать пользователя со следующим:

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

системе - времени на съемку!

если Вы не сделаете этого, и есть другое имя на коробке (не root) вы хотите двиг с, использовать это в скрипте ниже.

[кадрах, снятых D80]давайте проверим это. Это очень простой скрипт на языке Python 3, которые вы можете использовать, чтобы "тест", что все работает как мы ожидаем. Убедитесь, что для обновления DESTINATION_ADDRESS, [f36 в], [fунции f37], SMTP_PASSWORD, и SMTP_SERVER_ADDR здесь, чтобы убедиться, что этот скрипт будет работать должным образом. Сохранить как test_smtp_server_tls.py где-то, и вспомнить, где мы спасли этого. (Вы можете создать его в /tmp/ если вы хотите, чтобы данные не сохраняются на вашем компьютере после перезагрузки)[!кадрах, снятых D80]

выполнить этот скрипт с python3 /tmp/test_smtp_server_tls.py (если вы спасли ее в /tmp/; изменить путь, если вы сохранили его в другом месте.

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

[f17 в]

это предполагает, что все вышеуказанные шаги работал, конечно.

время до установки брандмауэра, чтобы запретить несанкционированный доступ. Обратите внимание, что я ненавижу [пулемет f44], это не достаточно сложны для моих потребностей, поэтому я написал этот ответ с [f45 с] - вы можете сделать sudo ufw disable, чтобы выключить ufw и использовать прямой iptables манипуляции. Я тоже только предполагаю, что вы имеете IPv4 на систему.

конфигурации Google

изменить, чтобы быть:

если у вас уже есть правила брандмауэра на месте, тогда просто добавьте правило, чтобы принимать новые подключения на порт 587.

если у вас не включен брандмауэр, выполните следующие команды (добавлять дополнительные iptables -A INPUT -p tcp --dport 123 -m conntrack --ctstate NEW -j ACCEPT строки, заменив 123 с порта Кол-во иных услуг на вашей системе, Вы должны принимать входящие соединения, такие как TCP/443 и протокол TCP/80, для https и http соответственно, прежде чем вы делаете -j DROP строки):

после этого все настройки, выполните эту команду: sudo apt-get install iptables-persistent. Когда он просит, чтобы сохранить текущее правило-наборы, нажмите "Да" для каждого.

убедитесь, что Ваш тестовый скрипт выше и SSH доступ по-прежнему работает, прежде чем закрыть SSH-подключение или подключение к серверу! Если все нормально работает, то последний шаг, это создать псевдоним Google и сказать ему, чтобы отправить SMTP с этого домена с другого сервера.

если ваш Gmail под системные приложения Google, и Вы не находитесь на план приложения Гугл, что позволяет использовать внешние SMTP-сервера для отправки почты, то Вы не сможете сделать это. Это Гугл-ввел ограничение, и я не могу помочь вам там.

от страницы Gmail, нам нужно настроить вещи. Во-первых, зайдите в настройки Gmail.

раз в настройки, перейти на вкладку аккаунты и импорт.

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

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

3
ответ дан 18 July 2018 в 07:22
Примечание: этот ответ написан для сервера 16.04, но может быть адаптирован для 14.04 в случае необходимости (замена systemctl ... команды с правильной [зг19] команды.)

это очень сложная задача в настройке. Есть куча отдельных важных деталей, но есть четыре основных компонентов установки здесь, которые тоже 'безопасной':

Интернет-провайдер системы используется (жилого ИПС, как правило, "плохо", для этого, вы собираетесь хотите что-то в центре обработки данных либо виртуальный выделенный сервер или облако aws экземпляр ec2, или что-то подобное) в принципе, не использовать собственные сети для этого. Настройка SMTP-сервера еще куда-то, как Amazon ЕС2. Тем не менее, я настоятельно рекомендую взять отдельный сервер от куда-то, где можно установить rDNS IP-адреса для сопоставления прямого преобразования, вы будете иметь, чтобы установить. Мы коснемся позже на DNS. Сама система (закрыта СШ, брандмауэры и т. д.) Нам нужно очень многое настроить систему, чтобы запретить подключения на порт 25 и без SSL. Мы также должны просто блокировать систему. Мы сделаем этот шаг последний, после того, как мы убедитесь, что остальное работает. Постфикс МТА это предоставляет SMTP. Мы в конечном счете не нужно, чтобы доставить почту в любом месте, поэтому нам не нужно это как MX-запись вашего сайта в DNS, но нам надо еще кое-что настроить, нужна запись для хоста, и нам нужна обратная запись DNS для сопоставления (отсюда и предположение о фактическом ВПС вместо экземпляра ec2). Голубятня ядра обычно мы считаем Голубятню, чтобы быть поставщиком услуг POP3 или IMAP, но dovecot-core по себе могут быть использованы для предоставления sasl для серверной части, которая работает без проблем, и взаимодействует с пользователями системы. Это все мы используем Голубятню, но нам нужно изменить некоторые настройки.

я не буду касаться в точке #1, потому что я не могу контролировать это. Я очень[!однако Д3] даст вам рекомендации о том, как установить вещи. Мы собираемся сделать это в другом порядке из вышеуказанного списка, но мы все равно все это закончить.

Голубятня ядро

[клавиши f21] будет использоваться для sasl для бэкэнда. Есть несколько вещей, позже нам понадобится для работы с для 'безопасного' отправки почты, но мы можем начать настройку dovecot с бэкэнда.

сначала установите dovecot-core:

sudo apt-get install dovecot-core

далее нам нужно внести некоторые изменения в /etc/dovecot/conf.d/10-auth.conf.

давайте отключить текстовый проверки подлинности, и требовать SSL для учетных данных. В конечном счете, не важно с постфиксом -> голубятню, но это хороший шаг сделать.

Примечание: этот ответ написан для сервера 16.04, но может быть адаптирован для 14.04 при необходимости (замена systemctl ... команды с правильной [зг19] команды.)

заменить на: [f25 привод датчика]

найти: #disable_plaintext_auth = yes

заменить на: [f25 привод датчика]

заменить на: auth_mechanisms = plain login

далее мы должны включить механизм "вход" авт.

[d43 см.] [dрайвер d41]заменить на: auth_mechanisms = plain login[!dрайвер d41] # Postfix smtp-auth #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} изменить, чтобы быть: # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } [!d43 см.] [и D40]найти: auth_mechanisms = plain[!и D40]

тогда нам надо отредактировать файл /etc/dovecot/conf.d/10-master.conf.

изменить, чтобы быть:

passdb { driver = pam # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>] # [cache_key=<key>] [<service name>] #args = dovecot } изменить, чтобы быть: passdb { args = %s driver = pam # [session=yes] [setcred=yes] [failure_show_msg=yes] # [max_requests=> <n>] # [cache_key=<key>] [<service name>] #args = dovecot }

найти:

sudo systemctl restart dovecot

Постфикс

это включает проверку подлинности Постфикс бэкэнда sasl в Голубятню.

, наконец, за Голубятней, мы должны изменить /etc/dovecot/conf.d/auth-system.conf.ext:

sudo apt-get install postfix ssl-cert

найти:

как только это сделано, мы сможем перезапустить процесс Голубятня:

[о d54]теперь, за фактический SMTP и прочее. Это не так трудно настроить как Голубятня хех.[!о d54] smtp inet n - y - - smtpd

во-первых, установить postfix и пакет ssl-cert которая позволит создать основной самозаверяющий сертификат, который является старт достаточно для работы с SSL-защита для sasl авторизации для SMTP-клиенты:

[F9] и [размером d57]при запросе Постфикс типы сайтов, просто выберите "интернет-сайт".[!размером d57] submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_wrappermode=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes # -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,check_policy_service unix:private/policy-spf,reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_reject_unlisted_recipient=yes -o milter_macro_daemon_name=ORIGINATING -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth

как только это будет сделано, мы должны внести некоторые изменения в файлы Постфикс.

Найди эту строку:

sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.dist

Добавить ниже этих строк, так что линия выглядит, как это с помощью двух дополнительных строк ниже:

# 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 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) 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 readme_directory = no # TLS parameters smtpd_use_tls=yes smtpd_tls_security_level=may smtpd_tls_auth_only=no smtp_tls_note_starttls_offer=yes # Use an actual certificate. smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # Use an actual key. smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3 smtpd_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_mandatory_ciphers = medium smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes tls_random_source = dev:/dev/urandom #tls_medium_cipherlist = AES128+EECDH:AES128+EDH smtpd_client_connection_rate_limit = 50 anvil_rate_time_unit = 120s smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_policy_service unix:private/policy-spf # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination myhostname = mail.somedomain alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = $myhostname somedomain mail.somedomain localhost.somedomain localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all local_recipient_maps = proxy:unix:passwd.byname $alias_maps milter_protocol = 2 milter_default_action = accept queue_directory = /var/spool/postfix

также существует огромный раздел, начинающийся с submission, что закомментировано. Возьмите целый раздел, раскомментируйте этот раздел, и сделать его похожим на этот:

теперь это настроены, мы должны теперь изменять основные настройки, путем редактирования [f32 из].

[d63, как]во-первых, двигаться /etc/postfix/main.cf для /etc/postfix/main.cf.dist:[!d63, как] [от f13] [d64 с]далее, поместите следующий текст в новый файл. Убедитесь, что для обновления названий и имен доменов, по крайней мере один из ваших доменов:[!d64 с]

нам нужен пользователю auth с хоть.

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

обратите внимание, что я рекомендую вам SSL-сертификат только на почтовом сервере, или если у вас есть шаблон сертификата для одного из ваших доменов и установить mailname к домену в этот сертификат. Таким образом, Вы не используете самозаверяющий SSL-сертификатов для SSL/TLS-шифрование на связи. Просто мои два цента, вы все еще можете использовать самоподписанный для большинства вещи, если все, что вы делаете отправки электронной почты с SMTP-клиент, таких как Google отправлять письма как функция.

sudo useradd --create-home --user-group --shell /usr/sbin/nologin authsmtpuser

после того как вы закончили, мы должны остановить а затем начать процесс Постфикс:

sudo passwd authsmtpuser [г70]мы теперь должны быть хорошо идти с postfix и sasl Голубятню.[!г70]

теперь мы можем проверить вещи.

мы не создали пользователя, и у вас есть только несколько вариантов. В нашем случае, мы собираемся создать т пользователей для этой цели проверку подлинности SMTP.

#!/usr/bin/env python3 import email.utils as emailutils import smtplib from email.mime.text import MIMEText DESTINATION_ADDRESS = 'your-address@gmail.com' SOURCE_ADDRESS = 'smtp-test@yourdomain.com' SMTP_USERNAME = 'authsmtpuser' SMTP_PASSWORD = 'your password' SMTP_SERVER_ADDR = 'ip.add.re.ss' SMTP_SERVER_PORT = 587 # Don't change this. # Construct a test message. msg = MIMEText("This is a test message from your custom SMTP server!") msg['To'] = DESTINATION_ADDRESS msg['From'] = SOURCE_ADDRESS msg['Date'] = emailutils.formatdate(localtime=True) msg['Message-ID'] = emailutils.make_msgid() msg['Subject'] = "SMTP Server Mail Testing" try: print ("Establishing SMTP connection with SSL...") conn = smtplib.SMTP_SSL(SMTP_SERVER_ADDR, SMTP_SERVER_PORT) print ("Established connection.") except Exception as e: print ("Could not establish SMTP connection. Error was:\n%s" % str(e)) exit(1) try: print ("Attempting to authenticate...") (_, response) = conn.login(SMTP_USERNAME, SMTP_PASSWORD) if 'Authentication successful' in response.decode('utf-8'): print ("Authenticated with SMTP server successfully.") else: print ("Could not authenticate with server, response was: %s" % response.decode('utf-8')) exit(2) except Exception as e: print ("Could not authenticate with SMTP. Error was:\n%s" % str(e)) try: print ("Sending test message to [%s] from [%s] with subject [%s]..." % (DESTINATION_ADDRESS, SOURCE_ADDRESS, msg['Subject'])) conn.sendmail(SOURCE_ADDRESS, DESTINATION_ADDRESS, msg.as_string()) print ("Message queued for sending, please check your destination email inbox and junk folders for the message.") except Exception as e: print ("Could not send email. Error was:\n%s" % str(e)) exit(3) exit(0)

мы собираемся создать пользователя со следующим:

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

системе - времени на съемку!

если Вы не сделаете этого, и есть другое имя на коробке (не root) вы хотите двиг с, использовать это в скрипте ниже.

[кадрах, снятых D80]давайте проверим это. Это очень простой скрипт на языке Python 3, которые вы можете использовать, чтобы "тест", что все работает как мы ожидаем. Убедитесь, что для обновления DESTINATION_ADDRESS, [f36 в], [fунции f37], SMTP_PASSWORD, и SMTP_SERVER_ADDR здесь, чтобы убедиться, что этот скрипт будет работать должным образом. Сохранить как test_smtp_server_tls.py где-то, и вспомнить, где мы спасли этого. (Вы можете создать его в /tmp/ если вы хотите, чтобы данные не сохраняются на вашем компьютере после перезагрузки)[!кадрах, снятых D80]

выполнить этот скрипт с python3 /tmp/test_smtp_server_tls.py (если вы спасли ее в /tmp/; изменить путь, если вы сохранили его в другом месте.

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

[f17 в]

это предполагает, что все вышеуказанные шаги работал, конечно.

время до установки брандмауэра, чтобы запретить несанкционированный доступ. Обратите внимание, что я ненавижу [пулемет f44], это не достаточно сложны для моих потребностей, поэтому я написал этот ответ с [f45 с] - вы можете сделать sudo ufw disable, чтобы выключить ufw и использовать прямой iptables манипуляции. Я тоже только предполагаю, что вы имеете IPv4 на систему.

конфигурации Google

изменить, чтобы быть:

если у вас уже есть правила брандмауэра на месте, тогда просто добавьте правило, чтобы принимать новые подключения на порт 587.

если у вас не включен брандмауэр, выполните следующие команды (добавлять дополнительные iptables -A INPUT -p tcp --dport 123 -m conntrack --ctstate NEW -j ACCEPT строки, заменив 123 с порта Кол-во иных услуг на вашей системе, Вы должны принимать входящие соединения, такие как TCP/443 и протокол TCP/80, для https и http соответственно, прежде чем вы делаете -j DROP строки):

после этого все настройки, выполните эту команду: sudo apt-get install iptables-persistent. Когда он просит, чтобы сохранить текущее правило-наборы, нажмите "Да" для каждого.

убедитесь, что Ваш тестовый скрипт выше и SSH доступ по-прежнему работает, прежде чем закрыть SSH-подключение или подключение к серверу! Если все нормально работает, то последний шаг, это создать псевдоним Google и сказать ему, чтобы отправить SMTP с этого домена с другого сервера.

если ваш Gmail под системные приложения Google, и Вы не находитесь на план приложения Гугл, что позволяет использовать внешние SMTP-сервера для отправки почты, то Вы не сможете сделать это. Это Гугл-ввел ограничение, и я не могу помочь вам там.

от страницы Gmail, нам нужно настроить вещи. Во-первых, зайдите в настройки Gmail.

раз в настройки, перейти на вкладку аккаунты и импорт.

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

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

3
ответ дан 24 July 2018 в 18:47
  • 1
    Это блестяще, я дам ему вихрь. Большое спасибо за усилия! – Jonno 6 September 2017 в 22:40
  • 2
    @Jonno Добро пожаловать! Дайте мне знать, как это работает, и дайте мне знать, если с чем-нибудь еще мы сможем вам помочь. :) – Thomas Ward♦ 6 September 2017 в 23:04

Другие вопросы по тегам:

Похожие вопросы: