私はこれに何時間も立ち往生しています。しかし、基本的には、取り出したいコンテンツと添付の PDF が記載された電子メールが送信される受信トレイがあります。必要な HTML をすべて取り出す方法はわかりましたが、添付された PDF を保存するにはどうすればよいですか?
これは私がこれまでに持っているタラです:
public function read_emails(){ // チェックするユーザーを設定
$strUser = "email";
$strPassword = "passwrd";
$delete_emails=false;
// open
$hMail = imap_open ("{webmail.somethingsomething.com:143/notls}INBOX", "$strUser", "$strPassword") or die("can't connect: " . imap_last_error());
// get headers
$aHeaders = imap_headers( $hMail );
// get message count
$objMail = imap_mailboxmsginfo( $hMail );
if($objMail != NULL)
{
// process messages
for( $idxMsg = 1; $idxMsg <= $objMail->Nmsgs; $idxMsg++ )
{
// get header info
$objHeader = imap_headerinfo( $hMail, $idxMsg );
// get from object array
$aFrom = $objHeader->from;
// process headers
for( $idx = 0; $idx < count($aFrom); $idx++ )
{
// get object
$objData = $aFrom[ $idx ];
// get email from
$strEmailFrom = $objData->mailbox . "@" . $objData->host;
//Get the subject
$message_subject = $objHeader->subject;
//Get the body of the message
$fullBody = imap_fetchbody($hMail,$idxMsg, 2);//displays full body including junk
$bodyMessage = quoted_printable_decode($fullBody);
//Get the msg structure
$message_structure = imap_fetchstructure($hMail, $idx);
//WHAT DO I DO HERE????
}
// delete message
if($delete_emails == true){
imap_delete( $hMail, $idxMsg );
}
}
// expunge deleted messages
if($delete_emails == true){
imap_expunge( $hMail );
}
//Clears the cache
imap_gc($hMail, IMAP_GC_ELT);
}
// close
imap_close( $hMail );
}
メッセージ構造があり、print_r を実行すると、パーツの 1 つに添付ファイルがあることがわかり、それが PDF であることがわかります。次に何が来るかわからない。私は試してみましたが、良い解決策が見つからないようです。
ありがとう!
編集:ここに imap_fetchstructure の内容があります
stdClass オブジェクト ( [タイプ] => 1 [エンコーディング] => 0 [ifsubtype] => 1 [サブタイプ] => MIXED [ifdescription] => 0 [ifid] => 0 [ifdisposition] => 0 [ifdparameters] => 0 [ifparameters] => 1 [parameters] => 配列 ( [0] => stdClass オブジェクト ( [属性] => 境界 [値] => f46d044473ef81609f04d5f1997c ) ) [パーツ] => 配列 ( [0] => stdClass オブジェクト( [タイプ] => 1 [エンコーディング] => 0 [ifsubtype] => 1 [サブタイプ] => 代替 [ifdescription] => 0 [ifid] => 0 [ifdisposition] => 0 [ifdparameters] => 0 [ ifparameters] => 1 [パラメータ] => 配列 ( [0] => stdClass オブジェクト ( [属性] => 境界 [値] => f46d044473ef81609b04d5f1997a ) ) [パーツ] => 配列 ( [0] => stdClass オブジェクト ( [ type] => 0 [encoding] => 0 [ifsubtype] => 1 [subtype] => PLAIN [ifdescription] =>0 [ifid] => 0 [行] => 1 [バイト] => 37 [ifdisposition] => 0 [ifdparameters] => 0 [ifparameters] => 1 [parameters] => Array ( [0] => stdClassオブジェクト ( [属性] => charset [値] => ISO-8859-1 ) ) ) [1] => stdClass オブジェクト ( [タイプ] => 0 [エンコーディング] => 0 [ifsubtype] => 1 [サブタイプ] => HTML [ifdescription] => 0 [ifid] => 0 [行] => 1 [バイト] => 37 [ifdisposition] => 0 [ifdparameters] => 0 [ifparameters] => 1 [parameters] => Array ( [0] => stdClass Object ( [attribute] => charset [value] => ISO-8859-1 ) ) ) ) [1] => stdClass Object ( [type] => 3 [encoding] => 3 [ifsubtype] => 1 [subtype] => PDF [ifdescription] => 0 [ifid] => 0 [bytes] => 179876 [ifdisposition] => 1 [disposition] => attachment [ifdparameters] => 1 [ dパラメータ] =>Array ( [0] => stdClass Object ( [attribute] => filename [value] => Statement of Account.pdf ) ) [ifparameters] => 1 [parameters] => Array ( [0] => stdClass Object ( [ attribute] => name [value] => Statement of Account.pdf ) ) ) ) )