質問編集履歴

7

微調整

2020/09/26 14:26

投稿

hashibata
hashibata

スコア18

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
 
62
62
 
63
- 自分でも実装してみた処理を書きます。
63
+ 自分でも既に実装してみた処理を書きます。
64
64
 
65
65
 
66
66
 
@@ -102,6 +102,8 @@
102
102
 
103
103
 
104
104
 
105
+ テキストメールの場合は、上の処理で満足しているのですが、マルチパートの場合の実装をしていてキツくなってきました。
106
+
105
107
  Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って、パートごとのContent-typeと文字コードとエンコーディングと本文を取得して...
106
108
 
107
109
  挫折しました。

6

探している理由を追記

2020/09/26 14:26

投稿

hashibata
hashibata

スコア18

test CHANGED
File without changes
test CHANGED
@@ -102,6 +102,10 @@
102
102
 
103
103
 
104
104
 
105
- Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って...
105
+ Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って、パートごとのContent-typeと文字コードとエンコーディングと本文を取得して...
106
106
 
107
107
  挫折しました。
108
+
109
+
110
+
111
+ それでライブラリを探しています。

5

コードを修正

2020/09/26 14:21

投稿

hashibata
hashibata

スコア18

test CHANGED
File without changes
test CHANGED
@@ -84,6 +84,8 @@
84
84
 
85
85
  // 件名の取得
86
86
 
87
+ $subject = $head->subject;
88
+
87
89
  imap_mime_header_decode($subject); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding
88
90
 
89
91
  // 本文の取得

4

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

2020/09/26 13:46

投稿

hashibata
hashibata

スコア18

test CHANGED
File without changes
test CHANGED
@@ -57,3 +57,49 @@
57
57
 
58
58
 
59
59
  他にも調べたキーワードはありますが、出てくる結果は送信の処理について書かれたものが多かった気がします。
60
+
61
+
62
+
63
+ 自分でも実装してみた処理を書きます。
64
+
65
+
66
+
67
+ ```php
68
+
69
+ // メールサーバ接続
70
+
71
+ $mbox = imap_open("{pop.XXXX.jp/pop3}INBOX", "XXXX", "XXXX");
72
+
73
+ // 未読件数の確認
74
+
75
+ $mboxes = imap_mailboxmsginfo($mbox);
76
+
77
+ $mail_cnt = $mboxes->Unread;
78
+
79
+ // 宛先の取得
80
+
81
+ $head = imap_header($mbox, $i);
82
+
83
+ imap_mime_header_decode($head->from[0]->personal); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding
84
+
85
+ // 件名の取得
86
+
87
+ imap_mime_header_decode($subject); // 文字コードとエンコードされた文字列が分かるのでmb_convert_encoding
88
+
89
+ // 本文の取得
90
+
91
+ $body = imap_body($mbox, $i, FT_INTERNAL);
92
+
93
+ // テキストだと本文そのもの。HTMLや添付ファイルがあるとマルチパートなのは理解できてる。
94
+
95
+ // パートはバウンダリーで区切られていて
96
+
97
+ // content-type:text/plainのところはテキストパート。content-type:text/htmlのところはhtmlパート。
98
+
99
+ ```
100
+
101
+
102
+
103
+ Content-Typeヘッダの値がmultipart/alternativeの場合は、バウンダリー文字を取得して、その文字でbodyを割って...
104
+
105
+ 挫折しました。

3

末尾を変更

2020/09/26 13:44

投稿

hashibata
hashibata

スコア18

test CHANGED
File without changes
test CHANGED
@@ -56,4 +56,4 @@
56
56
 
57
57
 
58
58
 
59
- 他にも調べたキーワードはありますが、出てくる結果は送信の処理についてが多かった気がします。
59
+ 他にも調べたキーワードはありますが、出てくる結果は送信の処理について書かれたものが多かった気がします。

2

文章を修正

2020/09/26 13:08

投稿

hashibata
hashibata

スコア18

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,8 @@
30
30
 
31
31
 
32
32
 
33
+ もしご存知でしたら教えていただだけないでしょうか。
34
+
33
35
  よろしくお願いします。
34
36
 
35
37
 

1

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

2020/09/26 12:55

投稿

hashibata
hashibata

スコア18

test CHANGED
File without changes
test CHANGED
@@ -31,3 +31,27 @@
31
31
 
32
32
 
33
33
  よろしくお願いします。
34
+
35
+
36
+
37
+ 9/26) 追記
38
+
39
+ 調べたキーワード
40
+
41
+ - PHP メール ライブラリ
42
+
43
+ --PHPMailerというライブラリが出てきましたが、Class Featuresを見ると送信専用だと思われます。
44
+
45
+ --genkgo/mail: Library to send e-mails over different transports and protocols using immutable messages and streamsをいうライブラリに書かれたQuiitaの記事も見つけましたが、こちらも送信専用のように書かれていました。
46
+
47
+ - PHP メール 送信 "受信" ライブラリ
48
+
49
+ -- こちらのキーワードでも送信のライブラリが出てきました。
50
+
51
+ - php imap ライブラリ
52
+
53
+ -- これだとPHPのimapモジュールのインストール方法が出てきました。
54
+
55
+
56
+
57
+ 他にも調べたキーワードはありますが、出てくる結果は送信の処理についてが多かった気がします。