[建議] [問題] 會員數過多寄信問題

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
C.K.
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-05-07 13:36

[建議] [問題] 會員數過多寄信問題

文章 C.K. »

請教個問題

如果討論區會員數過多可能超過幾千或幾萬人像貴站就有3萬多人\r

不管使用SMTP或者sendmail寄信都有可能會因為發信主機限制一次發信人數的限制而無法發信給會員\r

查看一下admin_mass_email.php這個檔案在122行

代碼: 選擇全部

		for ($i = 0; $i < count($bcc_list); $i++)
		{
			$emailer->bcc($bcc_list[$i]);
		}
它是將所有會員資料都加入bbc密件副本裡一次傳送

那可能會遇到上述所說的主機可能會有限制發信人數而無法發送

本人有下面小小建議僅供討論區會員人數過多無法發信的問題

將發信筆數從全部會員改成特定數量發信

當到達所設定的發信數量時或者到達名單最後一未會員時發信

這樣應該能達到各發信主機所要求的設定值\r


打開admin/admin_mass_email.php 在122行

-----------找尋-----------

代碼: 選擇全部

		for ($i = 0; $i < count($bcc_list); $i++)
\n		{
			$emailer->bcc($bcc_list[$i]);
		}

		$email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "
";
		$email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "
";
		$email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "
";
		$email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "
";

		$emailer->use_template('admin_send_email');
		$emailer->email_address($board_config['board_email']);
		$emailer->set_subject($subject);
		$emailer->extra_headers($email_headers);

		$emailer->assign_vars(array(
			'SITENAME' => $board_config['sitename'], 
			'BOARD_EMAIL' => $board_config['board_email'], 
			'MESSAGE' => $message)
		);
		$emailer->send();
		$emailer->reset();
-----------取代成下面-----------

代碼: 選擇全部

		$I_Send = 1;
		$Z_Send = 250;//每次寄信的數量
		$A_Send = count($bcc_list);//寄信總量

		for ($i = 0; $i < count($bcc_list); $i++)
		{
			$Y_Send = $I_Send % $Z_Send;//判斷是否到達寄信數量
			$emailer->bcc($bcc_list[$i]);
			if ($Y_Send == 0 || $I_Send == $A_Send){//判斷是否到達寄信數量或者到達最後一位使用者

				$email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "
";
				$email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "
";
				$email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "
";
				$email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "
";
				
				$emailer->use_template('admin_send_email');
				$emailer->email_address($board_config['board_email']);
				$emailer->set_subject($subject);
				$emailer->extra_headers($email_headers);

				$emailer->assign_vars(array(
					'SITENAME' => $board_config['sitename'], 
					'BOARD_EMAIL' => $board_config['board_email'], 
					'MESSAGE' => $message)
					);
				$emailer->send();
				$emailer->reset();

			}
			$I_Send = $I_Send+1;
		}
C.K.
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-05-07 13:36

文章 C.K. »

都沒人有這樣的問題嗎??
小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

文章 小竹子 »

有.........所以我放棄發信 XD
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。
tony2000
星球普通子民
星球普通子民
文章: 11
註冊時間: 2005-01-19 15:39
聯繫:

文章 tony2000 »

太好了,我正好为这个问题头痛呢!
PHPBB中国,提供PHPBB各类支持及免费空间。
http://www.phpbb.cn
C.K.
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-05-07 13:36

文章 C.K. »

那如果改成上面語法是否可以成功呢\r

因為本人的phpbb差不多有5千多人\r

假如照上面改法應該是每250人就會寄一次\r

目前還都ok

只是可能還要修改一下email名單\r

可能改成有啟用的會員才呼叫出來

這樣才不會有一推退信\r

如果是超過萬人以後甚至幾十萬\r

各位有改的人可以說說看是否可行或者效果
小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

文章 小竹子 »

要改的話要大改,因為要先改發信前先偵測帳號是否存活,免的直接退信收到爆。
C.K. 寫:那如果改成上面語法是否可以成功呢\r

因為本人的phpbb差不多有5千多人\r

假如照上面改法應該是每250人就會寄一次\r

目前還都ok

只是可能還要修改一下email名單\r

可能改成有啟用的會員才呼叫出來

這樣才不會有一推退信\r

如果是超過萬人以後甚至幾十萬\r

各位有改的人可以說說看是否可行或者效果
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。
Mowd
竹貓忠實會員
竹貓忠實會員
文章: 326
註冊時間: 2002-06-26 01:17
來自: 台北
聯繫:

文章 Mowd »

這真是太棒啦~C.K.可以考慮發表到非官方外掛區~
上面提到的問題應該可以搭配快速砍人外掛使用,發信前先砍掉未啟用的人的帳號。
C.K.
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-05-07 13:36

文章 C.K. »

Mowd 寫:這真是太棒啦~C.K.可以考慮發表到非官方外掛區~
上面提到的問題應該可以搭配快速砍人外掛使用,發信前先砍掉未啟用的人的帳號。
如果覺得這篇文章覺得OK

麻煩各版面管理員請自行移動文章

還有關於小竹子說的是否存活問題可以修改如下

只寄帳號有啟用的人其他沒啟用的不發信

打開admin/admin_mass_email.php 大概在74行

-----------找尋-----------

代碼: 選擇全部

$sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE;
-----------取代成下面-----------

代碼: 選擇全部

$sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id AND u.user_active = 1" : "SELECT user_email FROM " . USERS_TABLE . " WHERE user_active = 1";
streitleak
星球公民
星球公民
文章: 261
註冊時間: 2003-07-26 04:44
來自: 龍潭
聯繫:

文章 streitleak »

C.K. 寫:
Mowd 寫:這真是太棒啦~C.K.可以考慮發表到非官方外掛區~
上面提到的問題應該可以搭配快速砍人外掛使用,發信前先砍掉未啟用的人的帳號。
如果覺得這篇文章覺得OK

麻煩各版面管理員請自行移動文章

還有關於小竹子說的是否存活問題可以修改如下

只寄帳號有啟用的人其他沒啟用的不發信
誤會意思囉!
這跟帳號有沒有啟用無關。主要是MAIL主機的問題,如果該EMAIL的負責主機發現沒有該會員的EMAIL帳號的時候。會把信退還給發信端,也就是你設定的MAIL主機。所以如果五千多人有一千人EMAIL掛掉的話...
你就會收到一千封退信...會砍到手軟喔....XD

不過可以利用PHP本身的MAIL函數作帳號的檢驗動作,但是還是很消耗時間跟資源就是了。
台灣動漫論壇
http://ACGFan.twbbs.org
星
汝命短眷族望聞
我望 
汝本將末看取
-------------《人類帝國國歌一節
ipodplay
星球普通子民
星球普通子民
文章: 1
註冊時間: 2005-12-09 12:34

文章 ipodplay »

請問admin_mass_email.php是哪一個版本?
為什麼跟我的不一樣呢?
我的是2.04>2.06 :oops:
主題已鎖定

回到「phpBB 2 安裝與使用」