이메일을 읽고 TO 주소에 따라 다른 이메일 주소로 배포하는 스크립트를 작성 중입니다. 모든 이메일은 하나의 주소로 발송되지만 이메일을 전달하거나 새 이메일을 작성하고 관련 메일 본문을 모두 포함하는 방법을 알아낼 수 없습니다.PHP와 IMAP에서 다운로드 한 이메일을 전달하는 방법은 무엇입니까?
지금 IMAP를 사용하여 전자 메일을 다운로드하고 imap_fetchbody를 사용하여 전자 메일 내용을 가져옵니다.
$email_body = imap_fetchbody($imapconnex, $msgnumber, 1);
일부 이메일 몸이 제대로 표시되지 않으며, 다른 사람들이 제대로 표시되지하는 내용을 일으키는 끝에 =
기호 짧은 라인을 포함한다. 또한 무작위로 A0
이 내 이메일 본문에 인쇄되어 있습니다.
나의 계획은 PHP의 mail() 함수를 사용하여 내가 원하는 곳으로 전자 메일을 보내고 보낸 사람 주소를 실제 보낸 사람 주소로 변경하는 것이었다. 그게 내 필요를 위해 작동하지만 올바른 신체를 가져 와서 포맷하고 보내는 방법을 알아낼 수 없습니다.
는 여기에 이메일을 보내 사용하고 내 코드입니다 :
$header = imap_fetch_overview($imapconnex, $search[$i]);
$email_subject = $header[0]->subject;
$email_head = imap_fetchbody($imapconnex, $search[$i], 0);
$email_body = imap_fetchbody($imapconnex, $search[$i], 1);
mail("[email protected]", $email_subject, $email_body, $email_head);
헤더가 잘 전달 될 것 같다,하지만 메시지의 본체는 여전히 =
및 A0
기호로 표시됩니다.
A0' 증상을 보입니다. 메일을 다시 보내는 경우 원본 메일에서 대부분의 헤더를 복사해야합니다. 전달하는 경우 새 메일의 MIME 본문 부분으로 모든 헤더를 그대로 유지 한 원본 메일을 포함해야합니다. – Celada
도움을 주셔서 감사합니다. 그것은 content-transfer-encoding에 대해 흥미 롭습니다. –
제 코드의 헤더를 수정했습니다 (Celada 감사합니다). 여전히'='와'A0'을 표시하는 바디에 문제가 있습니다. 나는 내 코드를 사용하여 원래 헤더에'Content-Transfer-Encoding '을 얻지 못하고 있다는 것을 알아 차렸다. –