Category Archives: Linux

procmail + kdialog構建郵件提醒腳本

Mutt真的是神器,越用越覺得爽。 可惜命令行模式的工具都有個弊端:跟X交互能力比較弱,例如Mutt就木有郵件提醒功能。 之前在Gnome2的年代裡還有mail-notification可以對付用(這玩意佔用系統資源狂多,似乎是通過監視文件更改來提醒的),在Gnome3之後這個工具就完全不工作了,而且又沒有後續版本。 青蛙拋棄Gnome,換成KDE之後,也沒有找到KDE下的郵件提醒工具,於是一直醞釀著自己寫一個。 實現郵件提醒功能,無非就是監控郵箱變更,可以在幾個點檢查: 直接使用POP/IMAP協議檢查服務器端監視MTA動作監視MDA動作監視MUA動作監視郵箱文件/目錄更改直接訪問服務器是最直接的辦法,但是既然MTA都把郵件收下來了,再去監視服務器就有點繞騰了,這種方法監視gmail/hotmail之類的郵箱還是很不錯的。 監視MUA的動作,adam8157同學就是這麼做的,監視Mutt startusbar的特殊字符串,通過Mutt的filter發送notify消息。 監視郵箱文件/目錄變化就是mail-notification的做法了,但是如果不想輪詢的話,大概需要內核開啟inotify支持。 監視MTA動作,青蛙沒有仔細研究,似乎還是需要MDA的某些行為處理,所以青蛙直接用了在MDA裡加入提醒腳本的方法。 監視MDA動作,就是青蛙的做法,利用procmail的nested block,把郵件pipe到一個腳本中處理,提取郵件發送者、標題和內容,然後發notify。 消息提醒的腳本已經有人做好了: http://blargasm.com/post/7980037487/evolution-new-mail-notifier 青蛙拿過來修改了一下,去掉pynotify,直接調用kdialog命令發送消息。 修改後的腳本在這裡: http://code.google.com/p/gfrog/source/browse/mail/mail-notifier.py 腳本有了,然後修改~/.procmailrc,在需要監視的過濾規則裡面加入:0 # Some filter rule { :0 c | ~/.mail-notifier.py :0 #Here is your inbox … Continue reading

Leave a comment Posted in Linux | Leave a comment

配置wordpress的郵件發送功能

青蛙繼續倒騰vps,今天的主題是調教wordpress發送郵件。 之前在Dreamhost上面,郵件系統已經配置好了,wordpress不需要任何設置就可以直接發送郵件。 到了vps上之後,青蛙為了節省資源,沒有安裝郵件服務器,所以想要發送郵件,還需要自己折騰。 青蛙首先是想到了配置一個輕量級的MTA,例如msmtp之類的,然後修改php.ini的sendmail_path參數,使它指向msmtp。 這樣php程序就具有郵件發送能力了,但是這樣產生的問題就是郵件的發送服務器是固定的,而且需要配置一個帳號來做登錄服務器,如果某個用戶希望使用自己的服務器發送某些郵件,這樣配置就無法實現了。 為了實現完美的解決方案,青蛙又搜了一圈,發現了wordpress已經集成了一個PHPMailer[1]類,並且提供了一個wp_mail函數[2]來發送郵件,有很多設置SMTP的插件[3]方便我們配置SMTP服務器和外發郵件帳號信息。 青蛙選擇了WP Mail SMTP插件,非常簡單,把所有參數填好,wordpress就可以發送郵件了。 參考資料: [1] PHPMailer http://phpmailer.worxware.com/ [2] Function Reference/wp_mail http://codex.wordpress.org/Function_Reference/wp_mail [3] 讓WordPress 通過SMTP 發送郵件http:// goto8848.net/2008/04/wordpress-mail-via-smtp/

Tagged , , , | 2 Comments Posted in Linux | Tagged , , , | 2 Comments

Install Xmind in Fedora with deb package

原始文件地址: http://www.xmind.net/share/gfrog1/install-xmind-in-fedora-with-deb-package/

Tagged , , | 评论关闭 Posted in Linux | Tagged , , | 評論關閉

在NGINX上開啟https

青蛙的新VPS是基於nginx的,僅僅是因為傳言nginx在小內存,大壓力的時候表現好一些。 當然,為了獲得這點好處,還是要付出一些代價的,例如nginx沒有apache的htaccess,對每個目錄的控制都需要寫到nginx的配置文件中,這樣對普通用戶來說十分的不方便。 哦,有點跑題,繼續說https的問題,其實給nginx配置https也不復雜,按照網上現成的模板,改一下自己的域名和目錄位置就好了。 下面是一個完整的示例[1][2]:(來自這裡) upstream test.com { server 192.168.1.2:80; } server { server_name test.com; include port.conf; ssl on; ssl_certificate server.crt ; # ${nginx_install_dir}/conf/server.crt ssl_certificate_key server.key; # ${nginx_install_dir}/conf/server.key error_page 497 “https://$host$uri?$args”; location / { proxy_pass http: //test.com; include proxy.conf;# auth_basic “status”; auth_basic_user_file trac.passwd; } … Continue reading

评论关闭 Posted in Linux , 青蛙的雜燴 | 評論關閉

一堆小Tips (4)

今天的Tip是關於虛擬化的。 問題的起因是青蛙當時使用的VirtualBox的網絡配置很不方便,guset系統啟動之後不能該網絡連接類型不說(後來的版本做了改進,但是用著還是不夠舒服),NAT模式下還不能直接跟Host系統通信。 於是青蛙痛下決心,學習了一下Linux tap和br設備的用法,寫了一個小腳本來搞定虛擬機的網絡問題。 這個腳本同樣也可以用於KVM的虛擬機。 這個腳本會根據配置文件建立一系列的tap設備,然後橋街到幾個br設備上去,然後在br上設置好IP,如果需要NAT功能則配置iptables規則。 腳本文件在這裡: http://gfrog.googlecode.com/hg/script/vnet.sh 配置文件如下: USER=gfrog #指定建立tap設備時所用的用戶名VNET_NUM=2 #需要建立的虛擬網絡數EXITIF =eth0 #SNAT的出口接口#以下是每個虛擬網絡的配置[vnet1] VETH_NUM=4 #虛擬網絡中包含的tap設備數VNET_IP=11.11.1.1/24 #虛擬網絡br設備上配置的ip地址DONAT= no #是否需要做nat [vnet2] VETH_NUM=4 VNET_IP=11.11.2.1/24 DONAT=yes EXITIF=wlan0 #針對這個虛擬網絡指定專門的SNAT出口此配置腳本需要一個名為confget的程序解析配置文件,這個程序在debian/ubuntu源上有,fedora系需要自己找一下。 還要注意一點,因為每次建立tap設備的MAC地址都會變化,所以使用KVM虛擬機的時候需要在啟動虛擬機時給網卡指定MAC地址,防止guest系統裡的網卡名稱變化。

Tagged , , , | 评论关闭 Posted in Linux | Tagged , , , | 評論關閉