PHP 7.4を使っています。
メールの受信・送信処理を行うライブラリを探してます。
行いたいことはこんな感じです。
- メールの受信(IMAP)
-- ヘッダ情報(送信元名)の取得
-- そのメールが(テキスト or HTML)の判定
-- テキストメール本文の取得
-- HTMLメール本文の取得
-- 添付ファイルの取得
- メール送信
-- テキストメール本文の設定
-- HTMLメール本文の設定
-- ファイルの添付
もしご存知でしたら教えていただだけないでしょうか。
よろしくお願いします。
9/26) 追記
調べたキーワード
- PHP メール ライブラリ
--PHPMailerというライブラリが出てきましたが、Class Featuresを見ると送信専用だと思われます。
--genkgo/mail: Library to send e-mails over different transports and protocols using immutable messages and streamsをいうライブラリに書かれたQuiitaの記事も見つけましたが、こちらも送信専用のように書かれていました。
- PHP メール 送信 "受信" ライブラリ
-- こちらのキーワードでも送信のライブラリが出てきました。
- php imap ライブラリ
-- これだとPHPのimapモジュールのインストール方法が出てきました。
他にも調べたキーワードはありますが、出てくる結果は送信の処理について書かれたものが多かった気がします。
自分でも既に実装してみた処理を書きます。
php
1// メールサーバ接続 2$mbox = imap_open("{pop.XXXX.jp/pop3}INBOX", "XXXX", "XXXX"); 3// 未読件数の確認 4$mboxes = imap_mailboxmsginfo($mbox); 5$mail_cnt = $mboxes->Unread; 6// 宛先の取得 7$head = imap_header($mbox, $i); 8imap_mime_header_decode($head->from[0]->personal); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding 9// 件名の取得 10$subject = $head->subject; 11imap_mime_header_decode($subject); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding 12// 本文の取得 13$body = imap_body($mbox, $i, FT_INTERNAL); 14// テキストだと本文そのもの。HTMLや添付ファイルがあるとマルチパートなのは理解できてる。 15// パートはバウンダリーで区切られていて 16// content-type:text/plainのところはテキストパート。content-type:text/htmlのところはhtmlパート。
テキストメールの場合は、上の処理で満足しているのですが、マルチパートの場合の実装をしていてキツくなってきました。
Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って、パートごとのContent-typeと文字コードとエンコーディングと本文を取得して...
挫折しました。
それでライブラリを探しています。
回答3件
あなたの回答
tips
プレビュー