postfix를 3.0으로 업데이트한 후 제목에 UTF-8 문자가 포함된 이메일이 다음 오류와 함께 대기열에 멈춥니다.
SMTPUTF8이 필요하지만 호스트 mail.example.com[1.2.3.4]에서는 제공되지 않습니다.
수신 서버(여기에서는 mail.example.com이라고 함)는 접미사 2.10.1이며 SMTPUTF8을 지원하지 않습니다.
이러한 이메일을 보내기 위해 postfix를 어떻게 얻나요? 업데이트 전처럼 전송되도록 postfix의 일부 옵션을 변경할 수 있나요?
현재 옵션에서 흥미로운 옵션은 다음과 같습니다.
compatibility_level = 2
smtputf8_autodetect_classes = sendmail, verify
smtputf8_enable = ${{$compatibility_level} < {1} ? {no} : {yes}}
strict_smtputf8 = no
이 모든 설정은 3.0의 기본값인 것 같습니다.
답변1
접미사에 따라읽어보기 파일:
기본적으로 Postfix는 보낸 사람 주소에 UTF-8, 받는 사람 주소에 UTF-8 또는 메시지 헤더 값에 UTF-8을 포함하는 주소 유효성 검사 프로브 및 Postfix sendmail 제출에만 "SMTPUTF8 요청"을 설정합니다.
sendmail 명령을 통해 메일을 제출하거나 주소 확인을 사용하는 경우 옵션을 조정해야 할 수도 있습니다 smtputf8_autodetect_classes
.
대기열을 성공적으로 플러시하려면 옵션을 수정한 후 명령을 smtputf8_autodetect_classes
사용하여 모든 메시지를 다시 대기열에 넣어야 합니다 . 기능을 일시적으로 비활성화해야 할 수도 있습니다(설명의 설명 참조).postsuper -r ALL
smtputf8
답변2
오늘 아침에 이런 오류가 발생했습니다.
- "php"를 사용하여 이메일을 보내면 다음과 같은 메시지가 수신됩니다.
X-Postfix; SMTPUTF8 is required, but was not offered by host
mx-aol.mail.gm0.yahoodns.net[67.195.204.80]
- 적절한 메일링 프로그램을 사용하여 동일한 주소로 이메일을 보내면 메일이 수신됩니다.
그래서 "postfix"를 수정하는 대신 php mail()
명령을 수정했습니다.
이것은 나에게 도움이 되었습니다. 이것이 누군가에게 도움이 되기를 바랍니다.
mail ( // $to =
$row["email"],
// $subject =
"Email subject here",
// $message =
quoted_printable_encode ("Bonjour,\r\n\r\nBlah blah - Sentiments distingués ... etc. "),
// $headers =
'From: ****@example.com' . "\r\n" .
'Reply-To: *******@example.com' . "\r\n" .
'Content-Type: text/plain; charset=UTF-8' . "\r\n" .
'Content-Transfer-Encoding: quoted-printable' . "\r\n" . // <--- this is THE part.
'X-Mailer: PHP/example.com');