SMTP サーバーを指定しても Mutt がメールを送信しない

SMTP サーバーを指定しても Mutt がメールを送信しない

私はメール クライアントとして使用しようとしておりmutt、Gmail アカウントでは問題なく動作します。しかし、仕事用のメールを使用すると、メールが送信されません。エラーは発生せず、単に送信されないだけです。.muttrcこの問題の原因となるファイル内の行は次のとおりです。

smtp_url を "smtp://mail.my_work_email_server.com:587" に設定します

smtp_passを追加しても動作は変わりません。また、電子メール サーバーの名前を変更しても (つまり、「架空の」サーバー アドレスを使用しても)動作は変わりません。

答え1

私も同じ経験があり、これが私にとっては効果がありました。

set ssl_starttls=yes
set ssl_force_tls=yes

set imap_user = "[email protected]"
set imap_pass = "!HASHEDPASSWORD!"
set folder = imap://mail.example.com/
set spoolfile = imap://mail.example.com/INBOX

# SMTP user auth
# # fill in the right user and pass based on your setup
# # protocols: smtp for TLS (25/587), smtps for SSL (465)
set smtp_url = "smtp://[email protected]:587"
set smtp_pass = "$imap_pass"

# Where to save copies of outgoing mail
set record = '+Sent'

私の場合、これが機能しなかったのは、構成ファイル内の順序と、存在しないフォルダーへのリンクであるフォルダーへの「記録の設定」の定義が原因でした。

フォルダーを作成するかどうかの質問に「いいえ」と答えると、フォルダーがハングし、SMTP サーバーへのトラフィックは確認されませんでした。

PS: ソース設定ファイルを確認してください。競合する設定や間違った順序が指定されている可能性があります。

HTH

答え2

そのマシン上の別のメール クライアントを使用して SMTP 経由でメールを正常に送信できますか? SMTP サーバーに Telnet して接続を確立できますか? STARTTLS を使用していますか?

mutt では、最初から TLS/SSL で保護された接続を示すためにプロトコルを使用しますsmtps。メール サーバーがこれを期待している場合 (最近では多くのサーバーがそうしています)、それが問題の原因である可能性があります。

ただし、メール サーバーが を使用することを想定している場合はSTARTTLS、 で通常のsmtp://プロトコルを使用しsmtp_url、 を必ず実行してくださいset ssl_starttls=yes

telnet以下は、STARTTLS を使用するメールサーバーを示すセッションの例です。

$ telnet smtp.example.com 587
Trying 127.0.0.1...
Connected to smtp.example.com.
Escape character is '^]'.
220 smtp.example.com ESMTP Postfix (Debian/GNU)
EHLO test
250-
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

答え3

私はこれを解明するために丸一日を費やし、さまざまな SSL/TLS とポート構成の組み合わせを何度も調整しましたが、成功しませんでした。今日、ついにこれを具体的に試しました。

set ssl_starttls = no

muttのデフォルトの動作はSTARTTLSを試すことになっているようですので、具体的に伝える必要があります。しないでください

明らかな設定以外には何も必要ありませんでしたsmtp_urlsmtp_passこれで完璧にメールを送信できるようになりました。.muttrc

set ssl_starttls = no
set smtp_url = "smtp://[email protected]@mail.example.com:587/"
set smtp_pass = "password"

それは推奨されませんメール プロバイダーからの SSL 構成。465 ポートを使用した推奨構成をまだ使用できません。

他にも試してみたい方のために、メールの送信に影響する私が調整した設定は次のとおりです。

set ssl_starttls = no    # apparently yes is default.
set ssl_force_tls = yes
set smtp_authenticators = "login"

set smtp_url = "smtp[s]://..."
set certificate_file = "~/.mutt/certificates"    # some recommend creating the file first: mkdir ~/.mutt && touch ~/.mutt/certificates

set ssl_verify_host = no
set ssl_verify_dates = no

答え4

これは古いスレッドだとは思いますが、昨日、上記の構成が機能しない理由を突き止めるのに 2 時間費やしました。他の人の時間を節約するために、解決策を共有したいと思います。

問題は、Google の SMTP サーバーからの証明書を少なくとも 1 回は受け入れる必要があり、そのためには入力をリダイレクトせずに mutt を実行する必要があることでした。そうしないと、mutt は証明書を受け入れるように要求できません。

ちなみに、証明書を に保存するには、常に に (a) を選択する必要があります.mutt/certificates。 に (o) を 1 回だけ選択すると、提供された証明書が使用されますが、 には保存されません .mutt/certificates

したがって、入力をリダイレクトせずにmuttを実行し(これには標準入力へのパイプも含まれます)、提供された証明書を受け入れます。1つの常に。その後、次に mutt を実行すると、保存された証明書が使用されるため、正常に動作するはずです。

関連情報