質問編集履歴

2

質問を絞りました。

2016/08/04 17:05

投稿

chapp
chapp

スコア233

test CHANGED
@@ -1 +1 @@
1
- ブラウザ上でメールを確認したい。QdmailReceiveの利用。
1
+ QdmailReceive、サーバー内メールを削除したい
test CHANGED
@@ -1,219 +1,21 @@
1
- お世話になります。
2
-
3
-
4
-
5
- QdmailReceiveを利用し、メールサーバー内あるメールを読み取、そのメールの情報をDBに保存する仕組みを考えてます。
1
+ お世話ます。ブラウザ上でメールの送受信が出来る仕組みを考えております。
6
2
 
7
3
 
8
4
 
9
5
  http://hal456.net/qdmail_rec/
10
6
 
7
+
8
+
11
- http://hal456.net/qdmail_rec/06
9
+ メールサーバー内にあるメールを読み込みは、QdmailReceiveを利用したいと考えておりますが、読み込んだ際、メールサーバー内のメールを削除したいと考えております。
12
10
 
13
11
 
14
12
 
15
- 上記を参考にこ数日、試行錯誤繰返していますがなかなか解決に至らず、の場にてご指導いただければ投稿いたました。
13
+ れら仕組みご存知の方アドバイス頂くことは可能でょうか?
16
14
 
17
15
 
18
16
 
19
- 箇条書きなりますが、質問したい点をいくつか挙げさせてください。
17
+ メールサーバー内のメールを操作するこは今回初めてでネットで調べも情報が少な(調べ方が悪?)困っています
20
18
 
21
19
 
22
20
 
23
- 1.QdmailReceiveは、メールサーバー内のメール情報を抽出する仕組みとなっていますが、QdmailReceive起動後、メールサーバー内のメールを削除するにはどうしたら宜しいのでしょうか?
24
-
25
-
26
-
27
- 2.http://hal456.net/qdmail_rec/06 にある、「添付ファイルを保存するサンプルコード」を置くと、アクセスした(プログラムを実行した)場所で添付ファイルが保存されます。この場所を指定するにはどこを修正すればよろしいのでしょうか?
28
-
29
-
30
-
31
- 3.日本語の添付ファイルの場合、urlencodeされているようですが、同名のファイルにも上書きされないよう、ファイル名に時刻を加えたいと考えています。どこを修正すればよろしいのでしょうか?
32
-
33
-
34
-
35
- 4.メールサーバー内のメールの情報をDBに保存したいのですが、http://hal456.net/qdmail_rec/ の、「サンプルコード内容」のfor文の中で、添付ファイル名を変数に入れたいと考えています。どのような形式となるのでしょうか?(ファイル数は複数あることも想定したい)
36
-
37
-
38
-
39
-
40
-
41
- 先にも書きましたが、色々と試してはいるものの、いずれも失敗ばかりで上手くいきません。
42
-
43
- お忙しい中恐縮ですが、アドバイスのほど、よろしくお願い申し上げます。
21
+ お忙しい中恐縮ですが、よろしくお願い申し上げます。
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
- ■追記:
52
-
53
- 丸投げの質問とご指摘を受けました。
54
-
55
- 質問の文面からからして仰る通りです。失礼いたしました。
56
-
57
-
58
-
59
- 補足含め、改めてお話しすると、QdmailReceiveは2種のファイルから構成するかと思いますが、QdmailReceive.phpを呼び出す側のファイルは、現在、以下のような形になっています。
60
-
61
-
62
-
63
-
64
-
65
- //////////////////////////////////////////////////
66
-
67
-
68
-
69
- include ("./qdmail_receiver.php");
70
-
71
-
72
-
73
-
74
-
75
- $server = array(
76
-
77
- 'protocol'=>'pop3',
78
-
79
- 'host'=> $hostname,
80
-
81
- 'user'=> $username,
82
-
83
- 'pass'=> $password,
84
-
85
- );
86
-
87
-
88
-
89
-
90
-
91
- $receiver = QdmailReceiver::start('pop', $server);
92
-
93
-
94
-
95
-
96
-
97
- for($i = 1 ; $i <= $receiver->count() ; $i++){
98
-
99
-
100
-
101
- $from = $receiver-> header(array('from','mail'));//送信元
102
-
103
- $to = $receiver-> header(array('to','mail'));//宛先
104
-
105
- $subject = $receiver-> header(array('subject','name'));//件名
106
-
107
- $date = $receiver-> header(array('date','name'));//送信時刻
108
-
109
- $body = $receiver-> bodyAutoSelect();//本文
110
-
111
-
112
-
113
- $attach = $receiver->attach();//添付ファイル
114
-
115
- foreach($attach as $att){
116
-
117
- $fp=fopen($att['filename_safe'],'w');
118
-
119
- fputs($fp,$att['value']);
120
-
121
- fclose($fp);
122
-
123
- }
124
-
125
-
126
-
127
-
128
-
129
- //添付ファイル名を変数に
130
-
131
- for($h=0; $h<count($attach); $h++){
132
-
133
-
134
-
135
- $filename_data .= $attach[$h][filename_safe];
136
-
137
-
138
-
139
- }
140
-
141
-
142
-
143
-
144
-
145
- //変数に代入された値をDBにinsert
146
-
147
- $sql = "INSERT INTO TBname VALUES(~
148
-
149
- mysql_query($sql) or die("INSERT ERR");
150
-
151
-
152
-
153
- $receiver-> next();
154
-
155
-
156
-
157
- }
158
-
159
-
160
-
161
-
162
-
163
- //////////////////////////////////////////////////
164
-
165
-
166
-
167
-
168
-
169
- 添付ファイルがあった場合、ファイルの保存、そしてファイル名の抽出をしたいため、
170
-
171
- http://hal456.net/qdmail_rec/06
172
-
173
- にあるように、
174
-
175
-
176
-
177
-
178
-
179
- $attach = $receiver->attach();//添付ファイル
180
-
181
- foreach($attach as $att){
182
-
183
- $fp=fopen($att['filename_safe'],'w');
184
-
185
- fputs($fp,$att['value']);
186
-
187
- fclose($fp);
188
-
189
- }
190
-
191
-
192
-
193
-
194
-
195
- を追加したわけですが、このままですと、ファイルはアクセスしたディレクトリ内に保存され、かつ、日本語ファイルはデコードされる形になっています。
196
-
197
-
198
-
199
- 保存先を指定しようと、$att['filename_safe']の部分をパス指定にするとエラーとなり、「filename_safe」という名称を探すも、
200
-
201
- $ret['filename_safe'] = urlencode($filename);
202
-
203
- という箇所が一か所だけ。
204
-
205
- そもそも、$att[~]という形式や、$ret[~]という形式を今まで触ったことがなく、壁に突き当たってしまった状況です。
206
-
207
-
208
-
209
- ファイル名の抽出においても、
210
-
211
- //添付ファイル名を変数に
212
-
213
- として、for文で廻していますが、もっと適切なものがあればとも考え、質問では、やりたいことをはじめ、起きている不具合、そしてその対処法を色々と書いてしまい、結果丸投げと思われる内容となってしまいました。
214
-
215
-
216
-
217
- 不愉快な思いをさせてしまったことお詫びするとともに、改めアドバイスのほど頂戴出来れば幸いです。
218
-
219
- よろしくお願いいたします。

1

これまでの経緯と共に、試したことや、実際のファイルの内容を、「追記」として記載しました。

2016/08/04 17:05

投稿

chapp
chapp

スコア233

test CHANGED
File without changes
test CHANGED
@@ -41,3 +41,179 @@
41
41
  先にも書きましたが、色々と試してはいるものの、いずれも失敗ばかりで上手くいきません。
42
42
 
43
43
  お忙しい中恐縮ですが、アドバイスのほど、よろしくお願い申し上げます。
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+ ■追記:
52
+
53
+ 丸投げの質問とご指摘を受けました。
54
+
55
+ 質問の文面からからして仰る通りです。失礼いたしました。
56
+
57
+
58
+
59
+ 補足含め、改めてお話しすると、QdmailReceiveは2種のファイルから構成するかと思いますが、QdmailReceive.phpを呼び出す側のファイルは、現在、以下のような形になっています。
60
+
61
+
62
+
63
+
64
+
65
+ //////////////////////////////////////////////////
66
+
67
+
68
+
69
+ include ("./qdmail_receiver.php");
70
+
71
+
72
+
73
+
74
+
75
+ $server = array(
76
+
77
+ 'protocol'=>'pop3',
78
+
79
+ 'host'=> $hostname,
80
+
81
+ 'user'=> $username,
82
+
83
+ 'pass'=> $password,
84
+
85
+ );
86
+
87
+
88
+
89
+
90
+
91
+ $receiver = QdmailReceiver::start('pop', $server);
92
+
93
+
94
+
95
+
96
+
97
+ for($i = 1 ; $i <= $receiver->count() ; $i++){
98
+
99
+
100
+
101
+ $from = $receiver-> header(array('from','mail'));//送信元
102
+
103
+ $to = $receiver-> header(array('to','mail'));//宛先
104
+
105
+ $subject = $receiver-> header(array('subject','name'));//件名
106
+
107
+ $date = $receiver-> header(array('date','name'));//送信時刻
108
+
109
+ $body = $receiver-> bodyAutoSelect();//本文
110
+
111
+
112
+
113
+ $attach = $receiver->attach();//添付ファイル
114
+
115
+ foreach($attach as $att){
116
+
117
+ $fp=fopen($att['filename_safe'],'w');
118
+
119
+ fputs($fp,$att['value']);
120
+
121
+ fclose($fp);
122
+
123
+ }
124
+
125
+
126
+
127
+
128
+
129
+ //添付ファイル名を変数に
130
+
131
+ for($h=0; $h<count($attach); $h++){
132
+
133
+
134
+
135
+ $filename_data .= $attach[$h][filename_safe];
136
+
137
+
138
+
139
+ }
140
+
141
+
142
+
143
+
144
+
145
+ //変数に代入された値をDBにinsert
146
+
147
+ $sql = "INSERT INTO TBname VALUES(~
148
+
149
+ mysql_query($sql) or die("INSERT ERR");
150
+
151
+
152
+
153
+ $receiver-> next();
154
+
155
+
156
+
157
+ }
158
+
159
+
160
+
161
+
162
+
163
+ //////////////////////////////////////////////////
164
+
165
+
166
+
167
+
168
+
169
+ 添付ファイルがあった場合、ファイルの保存、そしてファイル名の抽出をしたいため、
170
+
171
+ http://hal456.net/qdmail_rec/06
172
+
173
+ にあるように、
174
+
175
+
176
+
177
+
178
+
179
+ $attach = $receiver->attach();//添付ファイル
180
+
181
+ foreach($attach as $att){
182
+
183
+ $fp=fopen($att['filename_safe'],'w');
184
+
185
+ fputs($fp,$att['value']);
186
+
187
+ fclose($fp);
188
+
189
+ }
190
+
191
+
192
+
193
+
194
+
195
+ を追加したわけですが、このままですと、ファイルはアクセスしたディレクトリ内に保存され、かつ、日本語ファイルはデコードされる形になっています。
196
+
197
+
198
+
199
+ 保存先を指定しようと、$att['filename_safe']の部分をパス指定にするとエラーとなり、「filename_safe」という名称を探すも、
200
+
201
+ $ret['filename_safe'] = urlencode($filename);
202
+
203
+ という箇所が一か所だけ。
204
+
205
+ そもそも、$att[~]という形式や、$ret[~]という形式を今まで触ったことがなく、壁に突き当たってしまった状況です。
206
+
207
+
208
+
209
+ ファイル名の抽出においても、
210
+
211
+ //添付ファイル名を変数に
212
+
213
+ として、for文で廻していますが、もっと適切なものがあればとも考え、質問では、やりたいことをはじめ、起きている不具合、そしてその対処法を色々と書いてしまい、結果丸投げと思われる内容となってしまいました。
214
+
215
+
216
+
217
+ 不愉快な思いをさせてしまったことお詫びするとともに、改めアドバイスのほど頂戴出来れば幸いです。
218
+
219
+ よろしくお願いいたします。