Может ли кто-нибудь указать мне руководство по использованию Postfix (или аналогичного) для отправки электронной почты в качестве SMTP-сервера для Gmail.
У меня несколько доменов, и все сообщения электронной почты заканчиваются в Gmail, но Google изменил свою политику некоторое время назад, чтобы перестать позволять пользователям отправлять электронную почту из нескольких доменов - теперь они настаивают на том, что у вас есть собственный SMTP-сервер. У меня есть Ubuntu VPS, который я использую для веб-хостинга, есть ли причина, по которой я не мог использовать его в качестве SMTP-сервера для Gmail?
это очень сложная задача в настройке. Есть куча отдельных важных деталей, но есть четыре основных компонентов установки здесь, которые тоже 'безопасной':
Интернет-провайдер системы используется (жилого ИПС, как правило, "плохо", для этого, вы собираетесь хотите что-то в центре обработки данных либо виртуальный выделенный сервер или облако 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 с]отмечают, что значительная часть вариантов конфигурации используются в основном для полномасштабной протоколу 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 на систему.
изменить, чтобы быть:
если у вас уже есть правила брандмауэра на месте, тогда просто добавьте правило, чтобы принимать новые подключения на порт 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.
раз в настройки, перейти на вкладку аккаунты и импорт.
Вам необходимо "удалить" любой набор псевдонимов до сих пор, в разделе "отправлять письма как", раздел, а затем нажмите "Добавить другой адрес электронной почты".
положить в ваше имя и другой адрес электронной почты для другого домена в окне, которое всплывает.
это очень сложная задача в настройке. Есть куча отдельных важных деталей, но есть четыре основных компонентов установки здесь, которые тоже 'безопасной':
Интернет-провайдер системы используется (жилого ИПС, как правило, "плохо", для этого, вы собираетесь хотите что-то в центре обработки данных либо виртуальный выделенный сервер или облако 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 с]отмечают, что значительная часть вариантов конфигурации используются в основном для полномасштабной протоколу 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 на систему.
изменить, чтобы быть:
если у вас уже есть правила брандмауэра на месте, тогда просто добавьте правило, чтобы принимать новые подключения на порт 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.
раз в настройки, перейти на вкладку аккаунты и импорт.
Вам необходимо "удалить" любой набор псевдонимов до сих пор, в разделе "отправлять письма как", раздел, а затем нажмите "Добавить другой адрес электронной почты".
положить в ваше имя и другой адрес электронной почты для другого домена в окне, которое всплывает.