網頁

2011年2月24日

php安裝及基本設定

PHPList網路上相關的教學非常多只要請Google大神找一下就一堆了
此篇文章紀錄整合相關問題點以防以後老人痴呆
下載最新版本phplist 2.10.10
解壓縮後把lists這個目錄移動到Web server下吧
1.編輯lists/config/config.php//中文語系
$language_module = "tchinese.inc";
//設定與資料庫MySql的連結
$database_host = "localhost"; 
$database_name = "emd";
$database_user = "edmuser";
$database_password ="PASSWORD '';

更改 define ("TEST",1); 成 define ("TEST",0); 才不會一直停留在測試模式

2. 解決大量匯入使用者無法出現選項的問題
lists/admin/info 複製 en ,改名為 zh-tw
lists/admin/help複製 en ,改名為 zh-tw
3.資料庫的字型預設值為unicode_general_ci的設定時,要修改/lists/admin /structure.php
的line 69
 "email" => array("varchar(255) not null unique","Email"),
修改為
"email" => array("varchar(233) not null unique","Email"),
phplist官網說明 http://mantis.phplist.com/view.php?id=8583

4.開始安裝
http://localhost/lists/admin, 點選初始化資料庫開始安裝
5.修改php.ini
SMTP =  localhost or IP
sendmail_from = server@domain

6.移除寄信時附加的 phplist logo

/lists/admin/sendemaillib.php
# Logo mark $text["signature"] = "\n\n--\nPowered by PHPlist, www.phplist.com --\n\n";     //文字註解
/* Logo mark
  if (!EMAILTEXTCREDITS) {
    $html["signature"] = $PoweredByImage;#'
http://www.phplist.com"> src="p
owerphplist.png" width=88 height=31 title="Powered by PHPlist" alt="""""""""Powered"""""""" by PHPlist" border="0">
';
    # oops, accidentally became spyware, never intended that, so take it out again :-)
    $html["signature"] = preg_replace('/src=".*power-phplist.png"/','src="powerphplist.png"',$html["signature"]);
  } else {
    $html["signature"] = $PoweredByText;
  }
*/
7.解決發送電子報存檔時中文標題亂碼的問題
下列的方式好像是phplist 2.10.10以前的版本才有用
/lists/admin/send_core.php line 813:
將這一行
value="'.htmlentities($subject).'" size=40>
換成
value="'.htmlentities($subject,ENT_COMPAT,'UTF-8').'" size=40>
phplist 2.10.10的版本需要
找到 1034 行
//value="'.htmlentities(iconv('ISO-8859-1','UTF-8',$subject),ENT_QUOTES,'UTF-8').'" size=40>
改成
//value="'.htmlentities($subject,ENT_QUOTES,'UTF-8').'" size=40>
1040行
value="'.htmlentities(iconv('ISO-8859-1','UTF-8',$from),ENT_QUOTES,'UTF-8').'" size=40>
改成
value="'.htmlentities($from,ENT_QUOTES,'UTF-8').'" size=40>
8.退信機制設定
以Gmail為例
設定/lists/config/config.php
$bounce_protocol = 'pop';
$message_envelope = 'username@gmail.com';
$bounce_mailbox_host = 'pop.gmail.com';
$bounce_mailbox_user = 'username@gmail.com';
$bounce_mailbox_password = 'password';
$bounce_mailbox_port = "995/pop3/ssl";

9.寄送速率設定
每次寄送的信件數,預設為0不限制
define("MAILQUEUE_BATCH_SIZE",0);
每次寄送的間隔,預設為3600秒
define("MAILQUEUE_BATCH_PERIOD",3600);
如果要設定為每秒寄出一封的話size=1,period=1

10.如果寄送測試信件時出現--->找不到電子郵件位址來寄送測試電子報
這是因為收件人要先建立在電子報會員名單中才能發送

11.發送email的時候無法顯示超連結的圖片
是因為使用者設定欄位中的寄送 HTML 信件給這個使用者預設是0 (純文字)更改成1 (html)
讓這個帳號可以接收html的格式即可
12.Mailer Error: Could not instantiate mail function.
寄完信件後看事件紀錄會發現出現 Mailer Error: Could not instantiate mail function.
這是因為config.php參數設定的問題
更改 define("PHPMAILER",1);   ---->成 define("PHPMAILER",0);



參考網站如下:
http://ttacplee.blogspot.com/2009/09/phplist-21010.html
http://jimmyhub.net/story/phplist-%E6%9E%B6%E8%A8%AD%E9%80%9F%E8%A8%98
http://www.kimo.club.tw/rewrite.php/read-213.html
http://kennyp.pixnet.net/blog/post/23689977
http://www.infobox.com.tw/new/2009-09-04-15-16-40/63-infobox-.html

phplist匯入名單時出現暫存資料夾無法寫入

在phplist的匯入使用者名單檔案時,
出現下列的警語
"警告:上傳資料的暫存資料夾()無法寫入,匯入程序無法順利進行"

所以資料檔一直匯不進去。
$tmpdir = 'C:/tmp';  ←設定本地的路徑
接著在對應的路徑建立目錄應該就可以了。

2011年2月16日

改變 PHPList 預設語言 (Default Language)

改變 PHPList 預設語言 (Default Language)

languages.php$LANGUAGES array 宣告後不遠處, 可以看到一個 if {} 正在設定頁面的相關 language 設定, 因此搶在這之前把 $_POST['setlanguage'] 的內容改掉變成 "zh-tw" 即可, 是故加上一行 $_POST['setlanguage'] = 'zh-tw'; 如下 :


這樣一來登入頁面時的預設語言就會自動切換成繁體中文了, 而原本透過下拉式選單切換其他語言的功能當然不受影響.

要改成其他的預設語言也可以利用同樣的方式, 不過缺點就是所有使用者都會被強迫修改就是了. 希望之後 PHPList 可以讓管理者以及一般使用者設定自己習慣的語言環境阿.

2011年2月15日

phplist 使用時注意事項

phplist 使用時注意事項



1.匯入mail名單注意符號  , / \ :
 
2.解決發信、存檔時中文標題亂碼的問題
/lists/admin/send_core.php
 
主旨
value="'.htmlentities($subject).'" size=40></td></tr>                                 //預設值
value="'.htmlentities($subject,ENT_COMPAT,'UTF-8').'" size=40></td></tr>  //修改後
 
寄件者
value="'.htmlentities($from).'" size=40></td></tr>                                  //預設值
value="'.htmlentities($from,ENT_COMPAT,'UTF-8').'" size=40></td></tr>   //修改後
 
3.解決在yahoo、hinet看時亂碼的問題(但gmail沒問題..)
首先,php要支援imap的function,安裝 /usr/ports/mail/php4-imap # make install clean

 # php -m
[PHP Modules]
bz2
ctype
gd
imap         //add
mbstring
mcrypt
mysql
openssl
overload
pcre
pdf
posix
session
standard
tokenizer
xml
zlib
[Zend Modules]
 
重新啟動apache
/lists/admin/sendemaillib.php

$cached[$messageid]["subject"] = (stripslashes($message["subject"]));   //預設值

$imap_subject = imap_binary(stripslashes($message["subject"]));            //修改後
$cached[$messageid]["subject"] = "=?UTF-8?B?".$imap_subject."?=";    //修改後
用imap的方式編碼,讓標題與內文成為不同的編碼方式
 
4.移除寄信時附加的 phplist logo
 
/lists/admin/sendemaillib.php
# Logo mark $text["signature"] = "\n\n--\nPowered by PHPlist, www.phplist.com --\n\n";     //文字註解

/* Logo mark
  if (!EMAILTEXTCREDITS) {
    $html["signature"] = $PoweredByImage;#'<div align="center" id="signature"><a href="http://www.phplist.com"><img src="p
owerphplist.png" width=88 height=31 title="Powered by PHPlist" alt="Powered by PHPlist" border="0"></a></div>';
    # oops, accidentally became spyware, never intended that, so take it out again :-)
    $html["signature"] = preg_replace('/src=".*power-phplist.png"/','src="powerphplist.png"',$html["signature"]);
  } else {
    $html["signature"] = $PoweredByText;
  }
*/