あなたが遭遇したように、Outlookは電子メールユニバースの惨劇です。使用しているチュートリアルで提供されているソースが、複数回、text/plain
としてエンコードされたコンテンツを参照していることがわかります。 Outlookから送信される電子メールには、平文の代わりに、または平文に加えて、text/html
の内容が含まれている可能性があります。
あなたは電子メールの内容をどうしたい内容に応じて、あなたがそうのような既存の1以下の重複体の検索を挿入することにより、同様text/html
エンコードされたコンテンツを受け入れるために、スクリプトを適応することができる場合があります
//get the message body
if(substr($decoded[0]['Headers']['content-type:'],0,strlen('text/html')) == 'text/html' && isset($decoded[0]['Body'])){
$body = $decoded[0]['Body'];
} elseif(substr($decoded[0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/html')) == 'text/html' && isset($decoded[0]['Parts'][0]['Body'])) {
$body = $decoded[0]['Parts'][0]['Body'];
} elseif(substr($decoded[0]['Parts'][0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/html')) == 'text/html' && isset($decoded[0]['Parts'][0]['Parts'][0]['Body'])) {
$body = $decoded[0]['Parts'][0]['Parts'][0]['Body'];
}
確かにきれいではありませんが、それが検出された場合Outlookから来るHTMLコンテンツを取得する必要があります。
実際にHTMLコンテンツを解析する必要がある場合、問題はもう少し複雑になります。あなたの次のステップは、この質問の答えのいくつかを見てみることです:Robust, Mature HTML Parser for PHP。
幸運を祈る!
具体的なエラーはありますか?私は同じチュートリアルのMIMEパーサークラスをOutlookでも成功させました。 – Compeek
データを解析する前にデータを印刷して、そのデータがどのように見えるかを確認するだけです。次に、さまざまな出力をここに掲示することができ、コードのどの部分が失敗するかを指摘するのに役立ちます。 – rzetterberg