macOS Sierra 10.12.6でpostfixを修正する方法は?

macOS Sierra 10.12.6でpostfixを修正する方法は?

postfixがうまくいかないようです。何かを送信するたびにエラーが発生します。(TLS is required, but our TLS engine is unavailable)

トラブルシューティング手順(それは役に立たない)

  • 削除openssl後、/opt/local/binそのうちの1つを強制的に使用する/usr/bin
  • opensslmacOS High Sierraでは/opt/local/bininに置き換えられました。openssl/usr/bin
  • opensslmacOS High Sierraでは/usr/bininに置き換えられました。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にあります):

  1. インストールするMacポート
  2. $ sudo port install stunnel certsync
  3. /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>
  1. stunnel3を実行するようにlaunchdを設定します。
    $ sudo launchctl load -w /Library/LaunchDaemons/org.example.mail.plist
  2. 接続テスト:
    nc localhost 555
  3. /etc/postfix/main.cfPostfixがSMTPサーバーに直接接続するのではなく、ローカルトンネルを使用するように編集します。

relayhost = [localhost]:555
smtp_tls_security_level = may

(暗号化レベルも下げる必要があります)

  1. に変更/etc/postfix/sasl_passwdsmtp.gmail.com:587localhost:555
  2. 郵便マップを再読み込みします。

sudo postmap hash:/etc/postfix/sasl_passwd

今、あなたの電子メールは魅力のように動作します!

PSデバッグ目的で実行中にメールログを表示するには、このコマンドを使用します。

log stream --predicate  '(process == "smtpd") || (process == "smtp")' --debug

PPS XCode 9.2がインストールされています。 stunnel3をインストール/実行する必要があるかもしれません。

関連情報