Postfix:ポート465/587経由でローカルに送信するEメー​​ルを送信する

Postfix:ポート465/587経由でローカルに送信するEメー​​ルを送信する

私はpostfix、dovecot、opendkim、spamasassinを使ってメールサーバーを設定しました。多くの困難の終わりに、私は着信メールを操作することができました。サーバーを使ってアカウントを設定することもできました。

ところで、メールの送信に問題があります。私のISPは太っていますが、ポート25を介した通信をブロックしています。これは明らかにメッセージ転送が機能しないことを意味します。以下は、以前のProtonmailアカウント(外部コンピュータのNeomuttから)に転送しようとした後のログです。

postfix/qmgr[653083]: 7E2BD9006AB: from=<[email protected]>, size=479, nrcpt=1 (queue active)
// disconnect from external client
postfix/smtp[653086]: connect to mail.protonmail.ch[185.70.41.101]:25: Connection timed out
postfix/smtp[653093]: connect to mail.protonmail.ch[185.70.41.101]:25: Connection timed out
postfix/smtp[653086]: connect to mailsec.protonmail.ch[185.70.40.102]:25: Connection timed out
postfix/smtp[653086]: 44DED90068A: to=<[email protected]>, relay=none, delay=115, delays=55/0.05/60/0, dsn=4.4.1, status=deferred (connect to mailsec.protonmail.ch[185.70.40.102]:25: Connection timed out)

そうですね…ISPがポート25(発信)をブロックするので、これをバイパスする方法が必要です。私がよく見た方法の1つは、外部smtpdを使用するように設定することです。私のISPを使用するか(理想的ではない)、私の友人のVPSにpostfixを設定する必要があります(完全に理想的ではありませんが、他のすべての方法が失敗した場合は彼に尋ねます)。技術的には、ISPにポート25のロックを解除するように要求できますが、おそらく機能しません。

ところで、発信するメールをすべて外部サーバーのポート465や587にルーティングしたいのですが、いいえ25、私のローカルサフィックス設定のみを使用します。オンラインでこれに関する情報が見つからず、発信 smtp ポートを代替ポートに変更しても、master.cf25 を介してコンテンツが送信されます。それでは、どうすればいいですか?私ができることが本当に何もない場合は、友達にVPSを依頼してください。

postconf -n:

alias_database = $alias_maps
alias_maps = hash:/etc/postfix/aliases
command_directory = /usr/bin
compatibility_level = 3.6
daemon_directory = /usr/lib/postfix/bin
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Mail/Inbox/
html_directory = no
inet_protocols = ipv4
mail_owner = postfix
mailbox_command = /usr/lib/dovecot/deliver
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
meta_directory = /etc/postfix
milter_default_action = accept
milter_protocol = 6
mydestination = $myhostname $mydomain localhost localhost.localdomain
mydomain = doma.in
myhostname = mail.doma.in
mynetworks = 127.0.0.0/8 [::1]/128 MY.IP/32 192.168.86.1 192.168.86.0/24
newaliases_path = /usr/bin/newaliases
non_smtpd_milters = inet:127.0.0.1:12301
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix
relay_domains = $mydestination
sample_directory = /etc/postfix
sendmail_path = /usr/bin/sendmail
setgid_group = postdrop
shlib_directory = /usr/lib/postfix
smtp_tls_CAfile = /etc/letsencrypt/live/doma.in/cert.pem
smtp_tls_loglevel = 1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = may
smtpd_milters = inet:127.0.0.1:12301
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/doma.in/fullchain.pem
smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, CAMELLIA128, 3DES, CAMELLIA256, RSA+AES, eNULL
smtpd_tls_key_file = /etc/letsencrypt/live/doma.in/privkey.pem
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_security_level = may
tls_preempt_cipherlist = yes
unknown_local_recipient_rject_code = 550

ベストアンサー1

次の目的でポート587を使用できます。

postconf -ev relayhost=smtp.example.com:submission

ポート587を使用している場合、リレーホストは認証を必要とする可能性が高く、その場合はファイルに必要なユーザー名とパスワードを指定する必要があります/etc/postfix/sasl_passwd

選択したリレーホストのDNS名がデフォルト名でない場合(つまり、dig -x <ip-address-of-relay-host>リレーホストに別の名前が返される場合)、リレーホスト名を括弧内に入れて引用符を追加して正式な名前解決を保護できます。シェルの括弧:

postconf -ev "relayhost=[smtp.example.com]:submission"

おすすめ記事