私はPHPで電子メールを扱う際にはかなり新しいです。電子メールの添付ファイルを電子メールメッセージとして保存する方法は?
基本的に私はpop3メールボックスを読んで、メッセージをデータベースに保存し、添付ファイルをフォルダに保存する必要があります。同じメールを別のメール受信者に返信します。
私はこれがすべて動作していると思っていましたが、添付ファイルが別のメールメッセージであると認識しました。私は本文を本文として受け取っています(base64_decodeの後)。
添付された電子メールをファイルに保存し、別のメッセージの添付ファイルとして送信することはできますか?
ご協力いただければ幸いです。ここで
は、大局的にそれを置くためにいくつかのコードです:
// This is the IMAP connection: imap_open("{"."$host:$port/pop3$ssl"."}$folder",$user,$pass,OP_SILENT);
$mailConnection = $this->Maildata->mail_login($host,$port,$user,$pass,$folder,$ssl);
// This retrieves the list of mails in the current folder
$messageList = $this->Maildata->mail_list($mailConnection,$message);
foreach ($messageList as $messageId => $messageListData) {
// This reads the mail object into an array
$mailMessage = $this->Maildata->mail_mime_to_array($mailConnection,$messageId,true);
// This loops through each mail
foreach ($mailMessage as $tmpId => $tmpData) {
// Excluded save to database since it is unrelated
// This checks if item is an attachment and saves it.
if (isset($tmpData['is_attachment']) && $tmpData['is_attachment'] === true) {
$tmpName = date('Y-m-d H:i:s', strtotime('now'));
$this->Maildata->mail_attachment_save($tmpData['data'], $tmpName .$tmpData['name']);
}
}
}
P.S.これはすべて動作しますが、imap_fetchbody($mailConnection , $messageId, $prefix);
は必要なすべてのデータを送信していないようです。
コードをお知らせください。それは "別のメッセージ"、どのMIMEパーサを使用していると言うのは間違っていますか? – DaveRandom
これは役に立つかもしれません:http://php.net/manual/en/book.imap.php「IMAP」と書いてありますが、私はPOPでもうまくいくと信じています。 –
@DaveRandom IMAPを使用してメールボックスに接続しています。私はいくつかのコードを追加しますが、私はそれが助けになるとは思わない。 – Nightwolf