« 2004年06月 | 首页 | 2004年08月 »

2004年07月27日

前面用perl写的群发邮件的脚本的python版本。

只是为了学习啊,东西虽然小,我是刚刚学,还是写了一段时间的。

代码如下。

在winxp + python 2.3.4  + winmail mailserver 3.8下正常通过。

Code:


#!/usr/bin/env python
# -*- coding: cp936 -*-

import smtplib
import time

######################################################
##    例程 gingerMail                      
##    参数列表                            
##    smtp_server                发邮件smtp服务器地址
##    from_usr                    发件人地址
##    to_usr                      收件人地址
##    title                         邮件标题
##    msg                          邮件内容
##    auth                         是否需要认证,1为是,0为否
##    log_usr                    smtp用户名
##    log_passwd             smtp密码
##    
######################################################

   
def gingerMail(smtp_server,from_usr,to_usr,title,msg,auth,log_usr,log_passwd):
   server = smtplib.SMTP(smtp_server)
   #server.set_debuglevel(1)
   if auth == 1:
       server.login(log_usr,log_passwd)
   head = "From: " + from_usr + "\n"
   head = head + "To: " + to_usr + "\n"
   head = head + "Subject: " + title + "\n\n"
   msg = head + msg    
   server.sendmail(from_usr, to_usr, msg)
   server.quit()

######################################################
##
##         以下为配置内容
##
######################################################

   
#邮件发送服务器地址
smtp_server = 'localhost'

#发件人地址
from_usr = 'ginger@localhost'

#邮件标题
title = '测试邮件一个,接好,别砸到!'

#发一封歇息多久
delay = 1

#smtp服务器是否需要验证
#需要验证为1不需要为0
auth = 1

#如果需要验证,请在下面输入用户名和密码
log_usr="ginger"
log_passwd="123456"


#包含收件人列表及可变信息的文本文件
#格式为:用户名,密码,详细信息
#请把它放在当前目录下,并把它命名为list.txt
f_list='list.txt';

try:
   f=open(f_list,'r')
   lines=f.readlines()
   #邮件计数变量
   cnt = 0
   for line in lines:
       (to_usr,passwd,detail) = line.split(",")
       #如果你的列表里直接存的就是email地址,请注释掉下面这一条
       to_usr = to_usr + "@localhost"
       msg = detail +", 您好\n\n"
       msg = msg + "我们的邮件服务器地址已经变为xxxxxxxx.\n"
       msg = msg + "您的用户名为" + to_usr + "密码为" + passwd
       msg = msg + "请尽快登陆修改。\n由于本次更改给您工作带来的不便在此表示歉意。\n谢谢您的支持。\n"
       cnt = cnt + 1
       print "I am sending Email No." + str(cnt) + " to " + to_usr + "......\n"
       gingerMail(smtp_server,from_usr,to_usr,title,msg,auth,log_usr,log_passwd)
       print "Email No." + str(cnt) + " has been sent to: " + to_usr + "\n"
       time.sleep(delay)
   f.close()    
   print "\n......All Finished!!!"
except IOError:
   print "Can not open list file please place it in current directory and name it as 'list.txt'\n"
   



测试用列表文件list.txt的内容

Code:


ginger,1111,臭老九
postmaster,2222,姜源
sleetdrop,3333,酱小鱼
ginger,4444,小姜




运行结果



收到的邮件



2004年07月26日

我的垃圾美工。

有点剽窃的嫌疑,瞎用photoshop涂鸦出来的,不知道用image ready能不能把它给切好。
想换换感觉,看除了fw还能不能切切切。


2004年07月25日

用perl发一大堆邮件的一种方法。

帮朋友写的。
本程序从一个文本文件中读取邮件地址和一些需要的记录。
activeperl 5.8 + winxp下通过。

Code:

#!/usr/bin/perl
use Net::Smtp;

#邮件发送服务器地址
$smtp_server = 'smtp.126.com';

#发件人地址
$from = 'sleetdrop@126.com';

#邮件标题
$title = '测试邮件一个,接好,别砸到!';

#发一封歇息多久
$delay = 1;

#包含收件人列表及可变信息的文本文件
#格式为:用户名,密码,详细信息
#请把它放在当前目录下,并把它命名为list.txt
$f_list='list.txt';
open(FILE,$f_list) || die "Can not open list file\n";
while(<FILE>){
chomp;
($usr,$passwd,$detail) = split(/,/);

#根据列表文件构建email地址
#$to = $usr.'@syau.edu.cn';

#如果您的列表里直接存储的是email地址,请用如下一句替换上面一句
$to = $usr;

#根据列表文件构建邮件内容。
#因为这里的heredoc要求顶格所以不能正常缩进
$msg=<<HTML;
$detail,您好。

我们的邮件服务器地址已经变为xxxxxxxx.
您的用户名为$usr密码为$passwd
请尽快登陆修改。
由于本次更改给您工作带来的不便在此表示歉意。
谢谢您的支持。

HTML

print "I am sending Email No.".($cnt+=1)." to ".$to."......\n";
&gingerMail($smtp_server,$from,$to,$title,$msg);
print "Email No.".$cnt." has been sent to: ".$to."\n";
sleep($delay);
}

close(FILE);
print "\n......All Finished!!!";

###########################
#                                                                
#例程gingerMail
#参数列表
#$smtp_server发邮件smtp服务器地址
#$from发件人地址      
#$to收件人地址                          
#$title邮件标题                            
#$msg邮件内容
#
###########################
sub gingerMail{
my($smtp_server,$from,$to,$title,$msg) = @_;
$smtp = Net::SMTP->new($smtp_server);
#如果您的服务器需要认证,请在下面输入用户名和密码。
#需要Auth-SASL模块的支持
#windows下可以用ppm安装,unix下请用CPAN安装。
$smtp->auth('sleetdrop','xxxxxxxxx');
$smtp->mail($from);
$smtp->to($to);
$smtp->data();
$smtp->datasend('From: '.$from);
$smtp->datasend("\n");
$smtp->datasend('To: '.$to);
$smtp->datasend("\n");
$smtp->datasend('Subject: '.$title);
$smtp->datasend("\n\n");
$smtp->datasend("$msg\n");
$smtp->dataend();
$smtp->quit;
}






list.txt范例文件

Code:


ginger@syau.edu.cn,1111,臭老九
sleetdrop@hotmail.com,2222,姜源
sleetdrop@126.com,3333,酱小鱼
sleetdrop@sohu.com,4444,小姜





运行结果

用outlook成功收到

2004年07月24日

昨天晚上下了一夜的雨。

昨天下了一夜的雨,几天的酷热后,今天却分外的晴朗加清爽,象早来的秋天。
今天心情忽然不好,已经两顿没吃了。

前几天买了两张黄磊的歌碟,上午听了些,感觉很有感觉。
原来才子如此啊!

似水年华 边走边唱 石头 我想我是海 冰点与沸点 等等等等

郁闷的是两张碟中有一张是假的,里面是羽泉的老歌。
卖的人心黑,我买的是D版,都不是好鸟,算了。

听过了他的歌之后换了点心情。

现在winamp里playing的是蔡琴阿姨的一张精选大碟里用grip抓取并压缩的ogg,质量还不错。
但愿天下的女人不都是象她老人家一样越老才越有味道。
要是这样的话,我可怎么活啊。
比如我还喜欢以过不惑的齐豫“先生”,同样的音乐女诗人。
我还单身呢?

我生来五音不全,特羡慕会唱歌的,象这样会用心唱歌的我当然更喜欢的不得了了。
可能就快上班了,突然在家里呆下来,把人有点呆得木了。
对明天没有什么计划,好像时间得流逝是理所当然的,真不知道到了单位会不会有出息呢。
我能干什么,人家又会让我干什么,能不能养活了自己。
天,我不算悲观,但我的生活从来都缺乏乐观。
就算什么事情都不发生,我的心情偶尔也会突然进入低谷。

窗外吹来凉凉的风,可我头还是昏昏的。好像是个未熟的南瓜,我也不知道这么比喻的意义何在,但现在好像就是这么恨这个未熟的南瓜。

最近我的显示器又点几何失真,最直接的感觉就是左手边的屏幕上的直线明显不直了,我真怕它会歪曲了我的思想和行为,有一天我要么变成白痴,要么变成个什么什么魔之类的变态狂。要不我要是能把直的东西看弯了,把弯的东西看直了那么也不错,可大家都记得《Matrix》里的那个小孩子说好像起变化的不是东西,是你自己而已。但愿前面的那句话达意了,而且没犯什么错误。

我顶不住了,我要躺一下了。
听着蔡阿姨的歌。。。。。。。。。。。
小憩 5 min
ft~~~~~~~~~~~~~

2004年07月23日

恼人的夏天。

电视里一直在放一个叫《完美夏天》的电视剧。

可这个夏天夏天真的很难熬,还好爷爷出院了,他身体还可以。

做东西怎么也做不出来,我又开始怀疑自己的白痴度了,原来真的这么的高。

一天开着电脑,看着它显示屏保-->待机-->休眠,然后又被我打开。

用photoshop fireworks flash做着一个个失败的小试验,我怎么一点点创意和美感都没有啊。

没有心情,还有恼人的夏天,还有我泡了汤的旅行。

二哥去了鞍山找了正式工作前的临时工作,因为他说他呆不住吗?我也不知道。

反正他做什么都又他的道理。

2004年07月17日

奇怪的状态!!!

最近几天爷爷病了,爸爸妈妈经常要陪他去医院。我就自己在家里看家,我要做一些家务,比如做饭,洗碗,扫地,还要喂鸡鸭和狗狗,感觉自己原来还有一些用处,嘿嘿。

偶尔家这边还会停电,真讨厌。

本来要学python,想用php做个站点,可一点心情也没有,现在又是午夜了。
接触了一个军人的站点,上面又一些异样的文章,我看了好多,不知道自己是不是病掉了。

离过婚的晓峰去了中国最北面的漠河去为生计而奔波。
见了一面的阿旭没了声响,如果没有记错他应该是在昨天去镶牙了,不知道他现在吃东东是不是很障碍。

上面两个男生分别是我初中和高中的记忆吧。

最近还有一个不报名的姑娘发匿名短信气我。
我也懒得去猜那是谁。
她说是旧相识。
我但愿不是。。。。。。

现在感觉自己得状态很奇怪,好像蒸发掉了很多的心情。
象一个风干的馒头。

忽然发现自己连可以想念的人都没有了。
原来把自己的全部都压在一个筹码上真的不是很明智。

我是个小白痴,虽然我长的傻大。

2004年07月16日

今晚见到了我高中时的他!

高中同学中记忆最深,让我最为挂念的就时他,一个与我有过太多故事的哥们。
几年南方陌生城市的求学,让他变得熟了,有点看不懂的感觉。
不再有年少的轻狂,虽然玩笑依然,但却没了当初的无忌于心。
穿着很modern且formal,站在他旁边我是个典型的村夫。
依稀的是当年的情感,叙的是淡淡的旧。
原来我放不下的就是这个难于弄清的故事。


最后,我才知道如果想忘记一个让你想的好苦的朋友,那么最简单的方法就是在多年后见他一下。
原来我的记忆中原本就应该只有那个1996年的他。

2004年07月13日

RedHat9 下Open Webmail 2.32的安装指南。

假设你已经安装好redhat9,并且默认安装的sendmail可用,并已经安装有apache.
先到
http://www.openwebmail.org/openwebmail/download/redhat/rpm/release/
下载最新版本的openwebmail的rpm包
这里选用的是
openwebmail-2.32-1.i386.rpm
再到
http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/rh9/
下载所需要的package
perl-CGI-2.81-88.i386.rpm
perl-Compress-Zlib-1.21-RH9.i386.rpm
perl-Text-Iconv-1.2-RH80.i386.rpm
perl-suidperl-5.8.0-88.i386.rpm
如果想让open webmail跑的快点可以下载optional目录里的
perl-CGI-SpeedyCGI-2.21-RH9.i386.rpm
这里只想基本的假设就没有使用读者可自己尝试
以root用户用
rpm -ivh xxxx.rpm
将上面的rpm包全都装上,注意我安装时候没装
perl-CGI-SpeedyCGI-2.21-RH9.i386.rpm
然后到
/var/www/cgi-bin/openwebmail/etc
把dbm.conf.default 改名为dbm.conf
如下
cp dbm.conf.default dbm.conf
然后用编辑器(如vi)把dbm.conf打开,把里面的
dbm_ext                 .db
dbmopen_ext             none
dbmopen_haslock         no
改为
dbm_ext                 .db
dbmopen_ext             .db
dbmopen_haslock         yes
存盘退出
再到
/var/www/cgi-bin/openwebmail/
执行
./openwebmail-tool.pl --init
成功后在保证apache运行的情况下直接在浏览器里访问
http://yourhostname/cgi-bin/openwebmail/openwebmail.pl
如果看到登陆页面那么祝贺你成功了,嘿嘿。
用你linux本地用户名登陆就可以了。
至于怎么用就不用我教了吧。

2004年07月11日

啥是幸福???

幸福的人都是别人看上去很幸福,真实的感受只有自己才特别的清楚。
祝福和鼓励每个遇到困难的朋友。
希望以后我和他们都能一路happy.

2004年07月09日

时过境迁

昨天晚上去了一个老同学那里,是我小学到初中的同班同学,他的生活出现了低谷,可我不希望这是他的全部,之所为低谷,它只应该是曲线的底部,我希望他能早点站起来。

他给我看了不得不离他而去的可爱的不过两三岁的女儿的照片,他女儿真的很漂亮。就像他一样。

没想到突然过去了这么多年,大家都有了如此多的变化。

昨晚是第一次睡在他身边,没想到会有很熟悉的感觉。

最后希望他重建美好的家庭,有份合心意的工作,并且学会珍惜拥有的东西。

2004年07月06日

PHP自动生成一张图片的缩略图

来源:动力火车·http://www.dltrain.com

Code:

 // 本函数从源文件取出图象,设定成指定大小,并输出到目的文件
// 源文件格式:gif,jpg,jpe,jpeg,png
// 目的文件格式:jpg
// 参数说明:
// $srcFile 源文件
// $dstFile 目标文件
// $dstW 目标图象宽度
// $dstH 目标图象高度
function makethumb($srcFile,$dstFile,$dstW,$dstH) {
$data = GetImageSize($srcFile,&amp;$info);
switch ($data[2]) {
case 1:
$im = @ImageCreateFromGIF($srcFile);
break;
case 2:
$im = @imagecreatefromjpeg($srcFile);
break;
case 3:
$im = @ImageCreateFromPNG($srcFile);
break;
}
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$dstX=0;
$dstY=0;
if ($srcW*$dstH&gt;$srcH*$dstW) { $fdstH=round($srcH*$dstW/$srcW); $dstY=floor(($dstH-$fdstH)/2); $fdstW=$dstW; }
else { $fdstW=round($srcW*$dstH/$srcH); $dstX=floor(($dstW-$fdstW)/2); $fdstH=$dstH; }
$ni=ImageCreate($dstW,$dstH);
$dstX=($dstX&lt;0)?0:$dstX;
$dstY=($dstX&lt;0)?0:$dstY;
$dstX=($dstX&gt;($dstW/2))?floor($dstW/2):$dstX;
$dstY=($dstY&gt;($dstH/2))?floor($dstH/s):$dstY;
$black = ImageColorAllocate($ni, 0,0,0);//填充的背景色你可以重新指定,我用的是黑色
imagefilledrectangle($ni,0,0,$dstW,$dstH,$black);
ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH);
ImageJpeg($ni,$dstFile);//如果你要把图片直接输出到浏览器,
//那么把第二个参数去掉,并用header()函数指定mine类型先
imagedestroy($im);
imagedestroy($ni);
}


2004年07月04日

又回家了

昨天去胡哥(二哥的高中同学)那里玩了半天加一夜.
他真的很像我二哥,那么的讲究.
认识一个二哥够有福气了,又结识了他,也许这就是老天在二哥远离后给我的补偿吧.
我很开心.


现在回家了,
可又不知道该干点什么.


安静的呆着也许就是幸福吧.

在假期想做点什么,但又没有一点的思路.
但愿我不是一点点的变成白痴.