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그 중 하나를 강제로 사용/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. 설치하다맥 포트
  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을 설치/실행해야 할 수도 있습니다.

관련 정보