0

次のスクリプトを使用して電子メールを読んでいます。

<?php
   //Fetch users from table 
   $sql_users=mysql_query("select  userName, realpass,userID  from users ");

   while($row = mysql_fetch_assoc($sql_users)){
       $username=$row['userName'].'@example.com'; // Email address is username@domain.com 
       $password=$row['realpass'];
       $hostname = '{example.com:995/pop3/ssl/novalidate-cert}'; 
       $username = $username; $password = $password; 
       $imap = imap_open($hostname,$username,$password) or die('Cannot connect: ' . imap_last_error());

       for ($i = 1; $i <= $message_count; ++$i){
           $header = imap_header($imap, $i);
           // fetch message body and mark it as read
       $body = imap_fetchbody($imap, $i,2,FT_PEEK);
           $prettydate = date("jS F Y", $header->udate);

       if (isset($header->from[0]->personal)) {
               $personal = $header->from[0]->personal;
           } else {
               $personal = $header->from[0]->mailbox;
           }
           $subject=$header->Subject;
           //display email content   
           $email = "$personal <{$header->from[0]->mailbox}@{$header->from[0]->host}>";
           echo "On $prettydate, $email said \"$body\".\n";
           echo '<br><br>';
   }
       print_r(imap_errors());
       imap_close($imap);
}

問題は、削除する必要がある余分な文字から電子メール メッセージが返されることです。また、メールを既読にする必要があります。サンプル メッセージは次のとおりです。

2013 年 3 月 20 日、Joe 氏は「祈りの内容を電子メールで送信しました。

この =A0 は example.com のテスト メールです。これは、新しい祈りのリクエストに変換する必要があります。

ありがとう、ジョー「。」

4

1 に答える 1

1

PHPリファレンスには、あなたと同様の問題があるコメントがあります。そのコメントで、彼は次のようにコンテンツを読みます。

 $text = trim( utf8_encode( quoted_printable_decode( 
                    imap_fetchbody( $this->inbox, $emailNo, $section ) ) ) );

その例をコードに合わせて調整してみてください。

于 2013-03-22T07:40:03.273 に答える