質問するログイン新規登録

質問編集履歴

7

微調整

2020/09/26 14:26

投稿

hashibata
hashibata

スコア18

title CHANGED
File without changes
body CHANGED
@@ -29,7 +29,7 @@
29
29
 
30
30
  他にも調べたキーワードはありますが、出てくる結果は送信の処理について書かれたものが多かった気がします。
31
31
 
32
- 自分でも実装してみた処理を書きます。
32
+ 自分でも既に実装してみた処理を書きます。
33
33
 
34
34
  ```php
35
35
  // メールサーバ接続
@@ -50,6 +50,7 @@
50
50
  // content-type:text/plainのところはテキストパート。content-type:text/htmlのところはhtmlパート。
51
51
  ```
52
52
 
53
+ テキストメールの場合は、上の処理で満足しているのですが、マルチパートの場合の実装をしていてキツくなってきました。
53
54
  Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って、パートごとのContent-typeと文字コードとエンコーディングと本文を取得して...
54
55
  挫折しました。
55
56
 

6

探している理由を追記

2020/09/26 14:26

投稿

hashibata
hashibata

スコア18

title CHANGED
File without changes
body CHANGED
@@ -50,5 +50,7 @@
50
50
  // content-type:text/plainのところはテキストパート。content-type:text/htmlのところはhtmlパート。
51
51
  ```
52
52
 
53
- Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って...
53
+ Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って、パートごとのContent-typeと文字コードとエンコーディングと本文を取得して...
54
- 挫折しました。
54
+ 挫折しました。
55
+
56
+ それでライブラリを探しています。

5

コードを修正

2020/09/26 14:21

投稿

hashibata
hashibata

スコア18

title CHANGED
File without changes
body CHANGED
@@ -41,6 +41,7 @@
41
41
  $head = imap_header($mbox, $i);
42
42
  imap_mime_header_decode($head->from[0]->personal); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding
43
43
  // 件名の取得
44
+ $subject = $head->subject;
44
45
  imap_mime_header_decode($subject); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding
45
46
  // 本文の取得
46
47
  $body = imap_body($mbox, $i, FT_INTERNAL);

4

自分で書いたコードを追加

2020/09/26 13:46

投稿

hashibata
hashibata

スコア18

title CHANGED
File without changes
body CHANGED
@@ -27,4 +27,27 @@
27
27
  - php imap ライブラリ
28
28
  -- これだとPHPのimapモジュールのインストール方法が出てきました。
29
29
 
30
- 他にも調べたキーワードはありますが、出てくる結果は送信の処理について書かれたものが多かった気がします。
30
+ 他にも調べたキーワードはありますが、出てくる結果は送信の処理について書かれたものが多かった気がします。
31
+
32
+ 自分でも実装してみた処理を書きます。
33
+
34
+ ```php
35
+ // メールサーバ接続
36
+ $mbox = imap_open("{pop.XXXX.jp/pop3}INBOX", "XXXX", "XXXX");
37
+ // 未読件数の確認
38
+ $mboxes = imap_mailboxmsginfo($mbox);
39
+ $mail_cnt = $mboxes->Unread;
40
+ // 宛先の取得
41
+ $head = imap_header($mbox, $i);
42
+ imap_mime_header_decode($head->from[0]->personal); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding
43
+ // 件名の取得
44
+ imap_mime_header_decode($subject); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding
45
+ // 本文の取得
46
+ $body = imap_body($mbox, $i, FT_INTERNAL);
47
+ // テキストだと本文そのもの。HTMLや添付ファイルがあるとマルチパートなのは理解できてる。
48
+ // パートはバウンダリーで区切られていて
49
+ // content-type:text/plainのところはテキストパート。content-type:text/htmlのところはhtmlパート。
50
+ ```
51
+
52
+ Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って...
53
+ 挫折しました。

3

末尾を変更

2020/09/26 13:44

投稿

hashibata
hashibata

スコア18

title CHANGED
File without changes
body CHANGED
@@ -27,4 +27,4 @@
27
27
  - php imap ライブラリ
28
28
  -- これだとPHPのimapモジュールのインストール方法が出てきました。
29
29
 
30
- 他にも調べたキーワードはありますが、出てくる結果は送信の処理についてが多かった気がします。
30
+ 他にも調べたキーワードはありますが、出てくる結果は送信の処理について書かれたものが多かった気がします。

2

文章を修正

2020/09/26 13:08

投稿

hashibata
hashibata

スコア18

title CHANGED
File without changes
body CHANGED
@@ -14,6 +14,7 @@
14
14
  -- HTMLメール本文の設定
15
15
  -- ファイルの添付
16
16
 
17
+ もしご存知でしたら教えていただだけないでしょうか。
17
18
  よろしくお願いします。
18
19
 
19
20
  9/26) 追記

1

調べたキーワードを追加しました。

2020/09/26 12:55

投稿

hashibata
hashibata

スコア18

title CHANGED
File without changes
body CHANGED
@@ -14,4 +14,16 @@
14
14
  -- HTMLメール本文の設定
15
15
  -- ファイルの添付
16
16
 
17
- よろしくお願いします。
17
+ よろしくお願いします。
18
+
19
+ 9/26) 追記
20
+ 調べたキーワード
21
+ - PHP メール ライブラリ
22
+ --PHPMailerというライブラリが出てきましたが、Class Featuresを見ると送信専用だと思われます。
23
+ --genkgo/mail: Library to send e-mails over different transports and protocols using immutable messages and streamsをいうライブラリに書かれたQuiitaの記事も見つけましたが、こちらも送信専用のように書かれていました。
24
+ - PHP メール 送信 "受信" ライブラリ
25
+ -- こちらのキーワードでも送信のライブラリが出てきました。
26
+ - php imap ライブラリ
27
+ -- これだとPHPのimapモジュールのインストール方法が出てきました。
28
+
29
+ 他にも調べたキーワードはありますが、出てくる結果は送信の処理についてが多かった気がします。