РЕДАКТИРОВАТЬ
Давайте на время проигнорируем все, что я написал ниже, и перефразируем вопрос: если у вас есть собственное доменное имя и вы хотите получать электронную почту для этого домена в свой почтовый ящик Gmail (не в Google Apps), как бы ТЫ сделай это? Желательно только SMTP, без использования POP3.
ОРИГИНАЛЬНЫЙ ВОПРОС:
amedee.be
.Большинство писем приходит нормально, в отличие от подобных вопросов, которые предлагает ServerFault, где все или ничего. Но чаще, чем хотелось бы (примерно 1 из 20), я получаю это в /var/log/mail.log
:
Nov 30 15:01:39 ip-172-31-51-67 postfix/smtp[29724]: 4B72563149:
to=<amedee.vangasse@gmail.com>,
relay=gmail-smtp-in.l.google.com[74.125.22.26]:25,
delay=2657,
delays=2657/0.2/0.07/0.18,
dsn=5.7.1,
status=bounced (host gmail-smtp-in.l.google.com[74.125.22.26] said:
550-5.7.1 [52.0.177.1037] Our system has detected that this message is
550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,
550-5.7.1 this message has been blocked. Please visit
550 5.7.1 https://support.google.com/mail/answer/188131 for more information.
y66si45484104qhc.73 - gsmtp (in reply to end of DATA command))
Я убедился, что это определенно не спам. Когда одно и то же письмо отправляется напрямую в Gmail, оно приходит.
Не знаю, совпадение ли это, но я начал замечать это примерно в то время, когда переместил свой сервер с Hetzner на AWS. Я использую эту настройку несколько лет, и только в последние 2 месяца письма теряются. Странно то, что конфигурации Postfix и Procmail на моем старом и новом сервере идентичны.
В других связанных вопросах упоминаются DKIM и SPF, которые мне нужно было бы изучить, что означают эти буквы, но в прошлом я не использовал это, и это работает, поэтому сначала я хотел бы исключить другие очевидные причины.
/etc/postfix/main.cf
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
append_dot_mydomain = no
biff = no
body_checks = regexp:/etc/postfix/checks/body_checks
broken_sasl_auth_clients = yes
disable_vrfy_command = yes
header_checks = regexp:/etc/postfix/checks/header_checks
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = ipv4
local_destination_concurrency_limit = 1
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
# If you can't deliver it in two hours - it can't be delivered!
#bounce_queue_lifetime = 2h
#maximal_queue_lifetime = 3h
#queue_run_delay = 3m
#minimal_backoff_time = 5m
#maximal_backoff_time = 10m
message_size_limit = 0
mime_header_checks = regexp:/etc/postfix/checks/mime_header_checks
mydestination =
styx,
styx.amedee.be,
ip-172-31-51-67.ec2.internal,
localhost.ec2.internal,
localhost,
intrepid,
intrepid.exabyte.be,
intrepid.amedee.be,
mail.amedee.be,
mx.amedee.be,
localhost.localdomain,
localhost.amedee.be,
amedee.be,
amed.ee,
vangasse.eu,
vangas.se,
dhertefelt.be,
dhertefe.lt,
pcrobots.amedee.be,
nowww.be
mydomain = amedee.be
myhostname = styx.amedee.be
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/8
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = -
relayhost =
smtp_destination_concurrency_limit = 1
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name. All Your Spam Are Belong To Us!
smtpd_client_connection_count_limit = 5
smtpd_client_restrictions =
# reject_invalid_hostname,
permit
smtpd_error_sleep_time = 10
smtpd_hard_error_limit = 5
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
# reject_invalid_hostname,
permit
smtpd_junk_command_limit = 3
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
# reject_invalid_hostname,
reject_multi_recipient_bounce,
reject_non_fqdn_recipient,
# reject_non_fqdn_sender,
reject_unauth_destination,
reject_unauth_pipelining,
reject_unknown_recipient_domain,
reject_unlisted_recipient,
permit
smtpd_relay_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
defer_unauth_destination
#smtpd_sasl_auth_enable = yes
#smtpd_sasl_local_domain = $myhostname
#smtpd_sasl_path = private/auth
#smtpd_sasl_security_options = noanonymous
#smtpd_sasl_type = dovecot
smtpd_sender_restrictions =
# reject_unknown_sender_domain,
permit
smtpd_soft_error_limit = 2
smtpd_timeout = 120
smtpd_tls_cert_file = /etc/postfix/tls/mail.cert
smtpd_tls_key_file = /etc/postfix/tls/mail.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
#virtual_alias_domains = /etc/postfix/maps/virtual_alias_domains
virtual_alias_maps = hash:/etc/postfix/maps/virtual_alias_maps
/etc/postfix/master.cf
smtp inet n - - - - smtpd
-o content_filter=spamassassin
submission inet n - - - - smtpd
-o content_filter=spamassassin
pickup unix n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
/home/amedee/.procmailrc
UMASK=007
PATH=/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir
LOGFILE=$HOME/log/procmail.log
SHELL=/bin/bash
VERBOSE=no
SED=/bin/sed
SENDER=`formail -c -x Return-Path`
SENDMAILFLAGS="-oi -f $SENDER"
GMAIL=amedee.vangasse@gmail.com
#From the manpages: prevent duplicate mails
:0 Wh: msgid.lock
| formail -D 8192 msgid.cache
:0
* ^Subject: Undelivered Mail Returned to Sender
/dev/null
:0
* .*
! $GMAIL
Мой вопрос: что мне нужно сделать, чтобы Gmail больше не возвращал законные электронные письма, которые я пересылаю?
РЕДАКТИРОВАТЬ: Кто-то отметил мой вопрос как дубликат этого вопроса: Как отправлять электронные письма и не попадать в спам? ТЕМ НЕ МЕНИЕ Мой вопрос не в том, чтобы отправить электронное письмо в качестве исходного отправителя, мой вопрос касается пересылки электронной почты, отправленной кем-то другим. Пометка также была сделана через 2 минуты после того, как я разместил свой вопрос, а этого времени недостаточно, чтобы прочитать его полностью, поэтому я думаю, что это был случай диагонального чтения. Не расстраивайтесь, мы все хотим заработать репутацию StackExchange.
Я буду продолжать редактировать этот вопрос, обращаясь к каждому пункту из предполагаемых дубликатов, пока я не докажу без каких-либо разумных сомнений, что это не дубликат.
РЕДАКТИРОВАТЬ: конфигурация DNS:
* 300 IN A 52.0.177.103
@ 300 IN A 52.0.177.103
styx 300 IN A 52.0.177.103
@ 300 IN MX 1 styx.amedee.be.
@ 300 IN SPF "v=spf1 ip4:52.0.177.103 ptr ?all"
@ 300 IN TXT "v=spf1 ip4:52.0.177.103 ptr ?all"
РЕДАКТИРОВАТЬ: Согласно mxtoolbox.com, мой обратный DNS не соответствует моему баннеру SMTP. Поэтому я изменил свой SMTP-баннер в /etc/postfix/main.cf
:
#smtpd_banner = $myhostname ESMTP $mail_name. All Your Spam Are Belong To Us!
smtpd_banner = ec2-52-0-177-103.compute-1.amazonaws.com
и подтвердил изменение после перезагрузки Postfix:
admin@ip-172-31-51-67:~$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 ec2-52-0-177-103.compute-1.amazonaws.com
quit
221 2.0.0 Bye
Connection closed by foreign host.
Итак, насколько я могу судить, обратный DNS 52.0.177.103
является ec2-52-0-177-103.compute-1.amazonaws.com
, и IP-адрес ec2-52-0-177-103.compute-1.amazonaws.com
является 52.0.177.103
. К сожалению, я бы предпочел, чтобы имя хоста styx.amedee.be
и обратный DNS были такими же, но я предполагаю, что это вне моего контроля.
Это невозможно с одним SMTP. Вам нужно будет настроить службу POP3 на своем личном почтовом сервере (например, Dovecot), а затем настроить Gmail для получения почты с помощью POP3. При использовании любого другого метода вы рискуете потерять электронную почту.