2014年12月26日 星期五

Office 2007 Excel VBA 命令按鈕無法使用

客戶使用office 2007,在excel下有使用vba程式,一直都使用正常;突然間反應說vba程式下的命令按鈕無法執行了!搞了好久,發現是微軟自動更新搞的鬼= ="!因為安裝了KB2596927這支修補程式,幸好微軟也提供了解決辦法http://support2.microsoft.com/kb/3025036!!

2014年12月17日 星期三

Roundcube的外掛元件

基本的Roundcube功能十分陽春,但可以外掛其他需要的功能模組,原始的Roundcube檔案已經附帶了一些外掛的模組,這些檔案存放在Roundcube資料夾下的plugins資料夾內。模組的啟用大多相當容易,先到Roundcube內的plugins資料夾下,找到想起用模組的資料夾名稱,接著到Roundcube內的config資料夾下開啟config.inc.php,找到以下這行
$config['plugins'] = array('');
將想啟用的模組名稱加入上方的設定,例如:
$config['plugins'] = array('markasjunk','password','userinfo','zipdownload');
接著到Roundcube內的plugins資料夾下,查看想開啟模組的對應資料夾下,是否有config.inc.php.dist 這支檔案,如果有,表示這個模組有些設定可以變更,請將config.inc.php.dist更名或複製成config.inc.php,再修改該模組資料夾下的config.inc.php內容即可。
以下為原始的Roundcube檔案已經附帶了一些外掛模組的設定:
archive 封存郵件 
加入模組後,需在設定內的特殊資料夾下指定封存的資料夾

markasjunk 標示垃圾郵件
這個模組安裝後,介面上會多了一個垃圾郵件的按鈕,可以將指定的郵件移動至垃圾郵件的資料夾下

managesieve 篩選器
可以自訂郵件的篩選過濾條件,將目標郵件執行設定的動作,如搬移、複製或轉寄。
managesieve需安裝dovecot-managesieved dovecot-sieve元件:
sudo apt-get install dovecot-managesieved dovecot-sieve
/etc/postfix/main.cf內新增
mailbox_command = /usr/lib/dovecot/dovecot-lda -d "$USER" -f "$SENDER" -a "$RECIPIENT"
修改/etc/dovecot/conf.d/15-lda.conf
protocol lda {
  mail_plugins = $mail_plugins sieve

}
修改/etc/dovecot/conf.d/90-plugin.conf
plugin {
 # setting_name = value
setting_name = sieve

}
另外,在roundcube的plug資料夾managesieve內,需產生 config.inc.php 設定檔(可以複製config.inc.php.dist)

重新啟動 postfix與dovecot

讓roundcube顯示使用者的quota
修改/etc/dovecot/conf.d/10-mail.conf如下:
mail_plugins = $mail_plugins quota
修改/etc/dovecot/conf.d/20-imap.conf:
mail_plugins = $mail_plugins imap_quota
修改/etc/dovecot/conf.d/90-quota.conf
## Quota limits
plugin {
  quota_rule = *:storage=3G
  quota_rule2 = Trash:storage=+100M
  quota_rule3 = SPAM:ignore
  quota_grace = 10%%
}
## Quota warnings
plugin {
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}
## Quota backends
plugin {
    quota = maildir:User quota
  }


重新啟動 dovecot
須注意的是此處只是設定在roundcube上顯示的quota上限,實際上的空間限制還是在於postfix的設定

password 變更密碼
這個模組可以讓使用者直接在網頁上修改自己的密碼。原始的設定是透過sql的語法去變更使用者密碼,但小弟功力太差,搞了半天就是搞不定,只好改用其他方法!在系統下安裝poppassd,透過它來變更使用者密碼。先安裝poppassd
sudo apt-get install poppassd
接著來到password資料夾下,將config.inc.php.dist複製一份並更名為config.inc.php
sudo cp config.inc.php.dist config.inc.php
接著編輯config.inc.php,找到以下這行:
$config['password_driver'] = 'sql';
並修改成
$config['password_driver'] = 'poppassd';
下方這幾項設定可以視需求修改
$config['password_minimum_length'] = 8;              //密碼的最小長度
$config['password_require_nonalpha'] = false;        //密碼至少需要含一個數字與一個標點符號
$config['password_log'] = true;                                //密碼的變更是否記錄log檔,若開啟會在Roundcube下的logs資料夾內產生一個password的log檔                                                                
userinfo 會在設定選項內多了一個"使用者資訊"的欄位

zipdownload 支援用zip的方是一次下載多個郵件附件
當郵件的附件有多個時,可以將多個附件用zip的方式打包一起下載。在zipdownload資料夾下,將config.inc.php.dist複製一份並更名為config.inc.php,編輯內容,找到下面這行
$config['zipdownload_charset'] = 'ISO-8859-1';
這裡可以指定zip檔案名稱的編碼,可以改成UTF-8,避免檔案名稱出現亂碼。
$config['zipdownload_charset'] = 'UTF-8';




2014年12月15日 星期一

Roundcube 預設帳號顯示與預設郵件編碼設定

Roundcube設定檔位於本身資料夾下config資料夾內,defaults.inc.php是Roundcube的所有預設值設定檔,config.inc.php是自訂的設定檔,config.inc.php的優先權大於defaults.inc.php,更改需要的設定值只需修改config.inc.php,不需要動到defaults.inc.php的內容;有需要可以參考defaults.inc.php的內容,再將需要的設定值寫入defaults.inc.php,儘量保持defaults.inc.php的完整,方便日後的故障排除!

下方的說明,修改或添加設定值,都是在config.inc.php內,修改完存檔後會立即生效,只要刷新Roundcube畫面即可!
使用者帳號:
Roundcube預設每個使用者都入時,帳號都是xxx@localhost,當你寄信時,也是顯示xxx@localhost,容易造成一些困擾,可以在config.inc.php內加入以下設定值,讓使用者帳號後@直接顯示本身的網域名稱:
$config['mail_domain'] = 'demo.tw';

設定預設的郵件編碼:
在defaults.inc.php內可以找到如下的內容,表示roundcube的郵件預設編碼是ISO-8859-1
// Use this charset as fallback for message decoding
$config['default_charset'] = 'ISO-8859-1';
若想將預設編碼改成常用的萬國碼,可以在config.inc.php加入以下設定:
$config['default_charset'] = 'UTF-8';

另外,預設帳號網域部分,即使修改了,已經登入過Roundcube的使用者顯示依然是localhost並不會改變,只能手動修改設定內的身份資料;也可以刪除mysql內roundcube使用的資料庫下users表單內,該使用者的資料,但該使用者在Roundcube那編輯的內容都會消失!!




Ubuntu 14.04下安裝Roundcube1.03

安裝好postfix後(安裝步驟參閱ubuntu 14.04 postfix+dovecot+amavis+clamav+spamassassin
),可以加上Roundcube,增加webmail的介面,步驟如下:

1.至Roundcube官網下載Roundcube,將下載的檔案解壓縮後放置你mail 主機下,apache指定的目錄位置,例如/var/www

2.0 安裝需要的元件
sudo apt-get install dovecot-imapd apache2 mysql-server-5.5 php5 phpmyadmin

phpmyadmin可視需求決定安裝與否,若安裝完 phpmyadmin,在登入phpmyadmin時看到畫面下方顯示"缺少 mcrypt 擴充套件。請檢查 PHP 設定。",執行以下指令安裝php5-mcrypt
sudo apt-get install php5-mcrypt
接著啟動mcrypt模組
sudo php5enmod mcrypt
sudo service apache2 restart
如此,應該不會再有警告訊息!

3.假設想使用https來連接,且將domain name直接連結到Roundcube,請修改/etc/apache2/sites-available/default-ssl.conf檔案,將DocumentRoot的值設定成你的Roundcube資料夾位置,例如
DocumentRoot /var/www/roundcubemail-1.0.3/
接著啟用ssl站台
sudo a2ensite default-ssl
啟用apache2的ssl模組
sudo a2enmod ssl
再重新啟動apapche2
sudo service apache2 restart
接著修改Roundcube資料夾下temp與logs的權限,確定apache2(www-data)有寫入權限
cd /var/www/roundcubemail-1.0.3
sudo chown -R www-data temp logs

4.確定已安裝好Mysql,有需要也可安裝phpmyadmin;新增roundcube所需要的mysql使用者與資料庫,roundcube須對使用的資料庫有寫入權限。

5.用瀏覽器連結至roundcube資料夾下的installer,滿足檢測頁面的要求。如;
https://demodomain/installer
檢測畫面中,資料庫的部分因為我們使用mysql,所以只要mysql的部分有OK就行了,其餘資料庫檢測狀態可以不用理會。若有未安裝的元件,畫面會在元件名稱後顯示NOT AVAILABLE再將其安裝補齊即可。例如Intl元件未安裝:
sudo apt-get install php5-intl
至於date.timezone:  NOT OK(not set)這個訊息,是因為在PHP內沒有設定所在的時區,可以修改/etc/php5/apache2/php.ini檔案:
date.timezone = "Asia/Taipei"
修改完php.ini後需要重新啟動apapche2才會生效!
sudo service apache2 restart
接著應該可以看到如下畫面,點選NEXT到下個步驟。











接下來的畫面分幾個大項
General configuration
support_url 是要連接Roundcube的支援網址
其他可以保留預設值

接著,Database setup部分,
Database type 選擇Mysql
Database server (omit for sqlite) 輸入loclahost
Database name (use absolute path and filename for sqlite) 輸入你在Mysql幫Roundcube開的帳號
Database user name (needs write permissions)(omit for sqlite) 輸入Mysql下Roundcube帳號的密碼

IMAP Settings部分
default_host 輸入IMAP主機,例如ssl://localhost
default_port IMAP主機使用的TCP PORT,例如:993
其他部分可以保留預設值

SMTP Settings
smtp_server SMTP SERVER,若使用加密,請輸入tls://localhost
smtp_port smtp使用的tcp port,預設是25
Use the current IMAP username and password for SMTP authentication 這個選項要勾選,讓smtp使用imap登入的帳號和密碼去驗證

Display settings & user prefs
language 預設的語系,繁體中文可輸入zh_TW

其他選項可以視需求勾選,接著點選CREATE CONFIG












這時應該可以看到如下畫面:





點選Download,下載剛剛設定後產生的config.inc.php,並將它放置到/var/www/roundcubemail-1.0.3/config/

接著,在畫面的可以看到CONINUE,點選進入測試畫面。












Check DB config下若看到以下畫面:








請點選Initialize database

Test SMTP config下,


填入一組在SMTP Server上可以寄信的帳號(User)與密碼(Password),Sender填入寄件者的EMAIL,Recipient填入收件者的EMAIL,接著按下Send test mail,若可以正常寄信,會顯示:
SMTP send:  OK

Test IMAP config











填入一組可以登入IMAP的帳號(Username)與密碼(Password),點下Check login,若可以正常登入IMAP,畫面會顯示:
Connecting to ssl://localhost...
IMAP connect:  OK(SORT capability: yes)

到此,Roundcube的設定算是完成了,有發現螢幕下方的那幾列紅字嗎?







為了安全考量,避免未經授權的使用者擅自更改Roundcube的設定,請確定在你的config.inc.php檔案內的enable_installer選項是停用的!必須確保使用者透過瀏覽器無法讀取installer這個資料夾!









2014年12月5日 星期五

ubuntu 14.04 postfix+dovecot+amavis+clamav+spamassassin

apt-get install postfix dovecot-pop3d amavisd-new spamassassin clamav clamav-daemon

/etc/postfix/main.cf
home_mailbox = Maildir/

#SASL

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions = 

permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

#amavis

content_filter = amavis:[127.0.0.1]:10024

receive_override_options = no_address_mappings

#smptd restrictions
smtpd_client_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_rbl_client cbl.abuseat.org,reject_rbl_client dnsbl.sorbs.net
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,reject_invalid_helo_hostname,check_helo_access hash:/etc/postfix/check_helo
smtpd_data_restrictions = reject_unauth_pipelining, reject_multi_recipient_bounce
smtpd_reject_unlisted_sender = yes


另外,在/etc/postfix/下新增check_helo對照表,格式如下:
主機名稱或IP       處置動作
例如,在check_helo檔案內設定如下:
mail.demo.tw         REJECT
設定好後,執行postmap /etc/postfix/check_helo,上述設定意義為(假設我的郵件主機名稱為mail.demo.tw),拒絕以mail.demo.tw這個主機名稱來連接,可避免client端冒用我方主機發送垃圾信件!

/etc/postfix/master.cf
amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes

127.0.0.1:10025 inet n - - - - smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks



/etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

/etc/dovecot/conf.d/10-master.conf
...
service auth {
...
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
...

}
/etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login



/etc/amavis/conf.d/15-content_filter_mode
@bypass_virus_checks_maps = (

   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (

   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

/etc/amavis/conf.d/20-debian_defaults (是狀況修該需要值 for Spam,這部分很怪的是明明安裝的是Ubuntu,卻一樣套用20-debian_defaults,試過修改21-ubuntu_defaults,卻沒有效果!)


/etc/amavis/conf.d/50-user
$pax='pax';

sudo adduser clamav amavis

sudo service amavis restart

sudo service clamav-freshclam restart

sudo service clamav-daemon restart

sudo freshclam

sudo  service dovecot restart

sudo service postfix restart

/etc/spamassassin/local.cf
#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1

  /etc/default/spamassassin
ENABLED=1


You can check your SpamAssassin configuration by executing:
spamassassin --lint (It shouldn't show any errors.)

sudo service amavis restart

Now we update our SpamAssassin rulesets as follows:
sudo sa-update --nogpg -D

We create a cron job so that the rulesets will be updated regularly. Run
sudo crontab -e
23 4 */2 * * /usr/bin/sa-update --nogpg  -D &> /dev/null

sudo service spamassassin start



2014年10月19日 星期日

自製USB開機,多系統安裝工具

使用工具:Easy2Boot
下載位址:http://www.easy2boot.com/download/

下載後先解壓縮
將要製成開機工具的USB隨身碟插入電腦
至剛剛解壓縮的Easy2Boot資料夾下,在\_ISO\docs\Make_E2B_USB_Drive下,用管理員權限執行"Make_E2B_USB_Drive.cmd"

輸入磁碟機的號碼,選定要製作的USB隨身碟,選作目標的UBS隨身碟會被清除上頭的所有資料,若你的USB磁碟小於16GB,並且你的單一檔案大小小於4G,建議格式化為FAT32格式,會有比較好的效能!
依照官網的說明,若是你的機器主機版是UFEI或者你需要在USB內放入Windows的安裝系統,必須在USB中再安裝grub4dos,並選擇YES=MBR
http://www.rmprepusb.com/documents/rmprepusb-beta-versions下載RMPrepUSB並安裝
執行RMPrepUSB,並選擇要使用的USB隨身碟

選擇安裝Grub4dos,在彈跳出的視窗上點選"是",選擇"Install to MBR"


至此,USB隨身碟的開機功能已經置作完成,以上步驟可參考官網http://www.easy2boot.com/make-an-easy2boot-usb-drive/
接著要放入你需要的各個ISO檔,例如你想放入windows 7的安裝系統,請將ISO檔直接放入USB隨身碟內的\_ISO\WINDOWS\WIN7,想放入Ubuntu Live CD,請將ISO檔放在USB下的\_ISO\LINUX.....,依照官網的說明,ISO資料夾下位置對應如下:

  1. \_ISO\MAINMENU                   (files are listed in the MAIN Menu)
  2. \_ISO\ANTIVIRUS                   (files are listed in the ANTIVIRUS Sub-Menu)
  3. \_ISO\BACKUP                       (files are listed in the BACKUP Sub-Menu)
  4. \_ISO\DOS                              (files are listed in the DOS Sub-Menu)
  5. \_ISO\LINUX                           (files are listed in the LINUX Sub-Menu)
  6. \_ISO\UTILITIES                     (files are listed in the UTILITIES Sub-Menu)
  7. \_ISO\UTILITIES_MEMTEST (files are listed in the MEMTEST Sub-Sub-Menu which is under the UTILITIES Menu)
  8. \_ISO\WIN                               (Windows Menu) For WindowsToGo and Windows Install .imgPTN files - NOT for Win Installer ISOs! 
  9. \_ISO\WINPE                          (files are listed in the Windows PE Menu)
  • \_ISO\WINDOWS                 (only for Windows Installer ISO files which MUST go in the correct pre-defined sub-folders)
  • \_ISO\AUTO                         (files are listed in the DIRECT BOOT menu - see below)
關於內容檔案的新增,可以參考官方網站:http://www.easy2boot.com/add-payload-files/


另外,當USB的內容有異動後,可以使用RMPrepUSB,執行"Make All File on Drive Contiguous",避免USB的使用失敗!


若是想在VMWare的環境下測試USB的多重開機功能,需要先下載 Plop Boot Manager,讓VMware的虛擬工作端支援USB開機!
Plop Boot Manager下載完之後解壓縮,裡面有一個plpbt.iso的檔案,是我們需要的;將VMware的虛擬工作端,光碟機的部分改成使用ISO 檔案,並指定到plpbt.iso,接著將製作好的USB隨身碟插入電腦,然後啟動虛擬系統,可以看到如下的畫面:

利用鍵盤上下鍵,選擇"USB",按下"ENTER",即可啟動USB開機!如此便可利用VMWare來測試製作的USB是否能順利開機,但若要利用此USB在VMWare上安裝需擬系統,會出現"error 16 inconsistent filesystem structure"的錯誤訊息,這個問題在Easy2Boot官網有說明http://www.easy2boot.com/faq-/troubleshooting/!!




2014年2月27日 星期四

Windows Update 目前無法檢查更新,因為該服務尚未執行,您可能需要重新啟動電腦.....

今早安裝一台win7 pro 64位元的系統,一裝完,要跑windows update石,就出現
“Windows Update 目前無法檢查更新,因為該服務尚未執行,您可能需要重新啟動電腦”.....
google一下,找到第一個解決辦法:

先將Windows Update服務停用,再到C:\Windows\SoftwareDistribution\DataStore將裡面的檔案及資料夾刪除,重新啟動Windows Update服務
依序做了一次,嗯~沒效@@

繼續google,又看到了一篇M$的KB文章,
http://support.microsoft.com/kb/982018/zh-tw

下載網頁上對應的修正程式,安裝完後,終於正常了@@

PS:早上安裝兩台一樣型號的ASUS 商務主機,偏偏一台從頭到尾都很順利,另一台就遇到這個問題....

2014年2月26日 星期三

ubuntu source.list 更新

在Ubuntu下安裝或更新軟體大多使用apt-get指令,偏偏Ubuntu的台灣主機常常罷工,尤其是較舊的Ubuntu版本更是常見!解決的辦法是更改/etc/apt/source.list檔內的更新伺服器位址,建議直接指向美國的主機。
修改方法如下:
1.建議先備份原來的source.list檔案,以備不時之需
cd /etc/apt
sudo cp source.list source.list.bak

2.修改source.list檔案內容,將檔案內的所有
http://tw.archive.ubuntu.com/ubuntu/
修改成
http://us.archive.ubuntu.com/ubuntu/

若是使用vi或vim編輯檔案,可以使用以下取代指令
:1,$s/tw.archive.ubuntu.com/us.archive.ubuntu.com/g

接著存檔後,再執行一次
sudo apt-get update
即可

印表機一直顯示離線......

最近幫user設定印表機(windows 7 Pro 64位元),卻發現安裝完印表機後,印表機馬上顯示離線....,後來想說乾脆把印表機全砍了~再重新設定,卻發現某一台印表機刪除完,再重新整理畫面後,又出現了...
但還是顯示離線,而這一台正是我要重新安裝的目標....在google上查詢了一下,找到了M$的官方說法:http://support.microsoft.com/kb/2027593/zh-tw
簡單說,就是進入登錄檔在
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Print\Printers\
路徑下,將看到的印表機名稱,你不想要的,通通刪掉==+即可!當然M$的連結網頁內也有自動修復問題的聯結可以使用,修復問題!