postfixがうまくいかないようです。何かを送信するたびにエラーが発生します。(TLS is required, but our TLS engine is unavailable)
トラブルシューティング手順(それは役に立たない)
- 削除
openssl
後、/opt/local/bin
そのうちの1つを強制的に使用する/usr/bin
openssl
macOS High Sierraでは/opt/local/bin
inに置き換えられました。openssl
/usr/bin
openssl
macOS High Sierraでは/usr/bin
inに置き換えられました。openssl
/usr/bin
openssl
以下からインストールbrew
/etc/postfix/main.cf
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_tls_security_level = encrypt
tls_random_source = dev:/dev/urandom
smtp_sasl_security_options = noanonymous
smtp_always_send_ehlo = yes
smtp_sasl_mechanism_filter = plain
inet_protocols = ipv4
/etc/postfix/sasl_passwd
[smtp.gmail.com]:587 [email protected]:XXXXXXXX
High Sierraにアップグレードできません。助けてください! ! ! ! ! !
答え1
10.12.6 これが起こるバグがあります。Appleが発表したセキュリティパッチ10.13.1および10.12.6に適用されます。 High Sierra 10.13.1にアップグレードすると、設定を変更せずに問題が最終的に解決されます。
答え2
最良の方法はHigh Sierraにアップグレードすることです。
何らかの理由でこれが可能でない場合は、stunnel
ローカル暗号化トンネルを使用してローカル暗号化トンネルを介して暗号化されていないメッセージを中継することで、このエラーを解決できます。このガイド(すべてのクレジットはRainer Müllerにあります):
- インストールするMacポート
$ sudo port install stunnel certsync
/Library/LaunchDaemons/org.example.mail.plist
次のコンテンツを作成してここに入れてください。
<!-- /Library/LaunchDaemons/org.example.mail.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.example.mail</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/stunnel3</string>
<string>-c</string>
<string>-r</string>
<string>smtp.gmail.com:587</string>
<string>-n</string>
<string>smtp</string>
<string>-v</string>
<string>2</string>
<string>-A</string>
<string>/opt/local/etc/openssl/cert.pem</string>
</array>
<key>UserName</key>
<string>nobody</string>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockNodeName</key>
<string>localhost</string>
<key>SockServiceName</key>
<string>555</string>
<key>SockType</key>
<string>stream</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>
- stunnel3を実行するようにlaunchdを設定します。
$ sudo launchctl load -w /Library/LaunchDaemons/org.example.mail.plist
- 接続テスト:
nc localhost 555
/etc/postfix/main.cf
PostfixがSMTPサーバーに直接接続するのではなく、ローカルトンネルを使用するように編集します。
relayhost = [localhost]:555
smtp_tls_security_level = may
(暗号化レベルも下げる必要があります)
- に変更
/etc/postfix/sasl_passwd
smtp.gmail.com:587
localhost:555
- 郵便マップを再読み込みします。
sudo postmap hash:/etc/postfix/sasl_passwd
今、あなたの電子メールは魅力のように動作します!
PSデバッグ目的で実行中にメールログを表示するには、このコマンドを使用します。
log stream --predicate '(process == "smtpd") || (process == "smtp")' --debug
PPS XCode 9.2がインストールされています。 stunnel3をインストール/実行する必要があるかもしれません。