■□■身未动 心已远■□■
-
码农
2008-03-28
前一阵子有个需求,要求写一个群发邮件的软件。因为小弟是Web工程师(呃....自己汗一下
),所以采用了asp.net 开发,实际测试中发现还真存在不少问题。
第一,IIS有响应时间问题。
第二,控制起来好不方便。
So,记得姜GG写了一个PERL群发E-MAIL的代码,找来看看,没想到还发现有后续版本(python)。。用perl发一大堆邮件的一种方法。
前面用perl写的群发邮件的脚本的python版本。
在自己电脑尝试装了一下PERL 2.5.8,不成,根本不会用
,姜GG说你用C#写呗,俺很惭愧...答曰,没写过winForm程序...只有写一个命令行形式的垃圾邮件群发器。呃。。。看网上的垃圾邮件群发器都采用SMTP轮询,俺没有那么多SMTP帐号,AND 也不会装SMTP服务器,SO,写一个单一SMTP服务器的版本。
运行环境:.Net Framework 2.0
需要准备滴:title.txt,content.txt,list.txt 位置:C:\Mail\
content.txt 格式为mail@mail.com,mail2@mail.com,mail3@mail.com,
代码:using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
namespace appMail
{
class Program
{
static void Main(string[] args)
{
string filepath = @"C:\Mail\list.txt";
string titlepath = @"C:\Mail\title.txt";
string contentpath = @"C:\Mail\Content.txt";
StreamReader sf = new StreamReader(filepath, Encoding.Default);
string mailList = sf.ReadToEnd();
sf.Close();
StreamReader sf2 = new StreamReader(titlepath, Encoding.Default);
string title = sf2.ReadToEnd();
sf2.Close();
StreamReader sf3 = new StreamReader(contentpath, Encoding.Default);
string content = sf3.ReadToEnd();
sf3.Close();
Console.WriteLine("输入smtp服务器,如QQ邮箱SMTP服务器为smtp.qq.com:");
string smtpStr = Console.ReadLine();
Console.WriteLine("邮箱名(全名):");
string username = Console.ReadLine();
Console.WriteLine("邮箱密码:");
string passwd = Console.ReadLine();
Console.WriteLine("输入间隔发送邮件数目:");
int mSize = int.Parse(Console.ReadLine());
Console.WriteLine("休眠时间,单位秒");
int tempPer =int.Parse( Console.ReadLine());
int mPer = tempPer*1000;
string[] str = Regex.Split(mailList, ",", RegexOptions.IgnoreCase);
int m = 1;
foreach (string i in str)
{
if (i.Trim() != "")
{
if (m % mSize == 0)
{
if (SendMail(smtpStr, username, passwd, username, i.Trim(), title, content))
{
Console.WriteLine("第" + m + "封:" + i + "发送完成;休眠"+ mSize +"秒钟;");
Thread.Sleep(mPer);
}
else
{
Console.WriteLine("第" + m + "封:" + i + "发送失败;休眠" + mSize + "秒钟;");
Thread.Sleep(mPer);
}
}
else
{
if (SendMail(smtpStr, username, passwd, username, i.Trim(), title, content))
{
Console.WriteLine("第" + m + "封:" + i + "发送完成;");
}
else
{
Console.WriteLine("第" + m + "封:" + i + "发送失败;");
}}
m++;
}
}
Console.WriteLine("邮件发送完毕");
Console.ReadKey();
}
public static Boolean SendMail(string strSmtpServer, string UserName, string Password, string strFrom, string strto, string strSubject, string strBody)
{
if (Regex.IsMatch(strto, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"))
{
//生成一个 使用SMTP发送邮件的客户端对象
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(strSmtpServer);//表示以当前登录用户的默认凭据进行身份验证
client.UseDefaultCredentials = true;//包含用户名和密码
client.Credentials = new System.Net.NetworkCredential(UserName, Password);//指定如何发送电子邮件。
//Network 电子邮件通过网络发送到 SMTP 服务器。
//PickupDirectoryFromIis 将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。
//SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;//建立邮件对象
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject, strBody);//定义邮件正文,主题的编码方式
message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
message.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");//获取或设置一个值,该值指示电子邮件正文是否为 HTML。
message.IsBodyHtml = true;//指定邮件优先级
message.Priority = System.Net.Mail.MailPriority.Normal;//邮件回复地址
//message.ReplyTo = new System.Net.Mail.MailAddress(rep);//添加附件
//System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@ "C:/Mail/附件.txt ");
//if (strFileName != " " && strFileName != null)
//{
// Attachment data = new Attachment(strFileName);
// message.Attachments.Add(data);
//}
//发件人身份验证,否则163 发不了
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
//发送
try
{
client.Send(message);
return true;
}
catch
{
return false;
}
finally
{
}
}
else {
return false;
}}
}
} -
When.You.Believe
2008-03-25
-
赎罪
2008-03-22
简体中文名: 赎罪
编剧: Ian McEwan
导演: Joe Wright
主演: Keira Knightley / James McAvoy / Romola Garai简介:
1935年夏天,来自一个宽裕的英国小康家庭的13岁的少女布里奥妮(斯奥里兹•罗南 饰)刚刚开始尝试写作,想象力丰富。一天,她暗中发现仆人的儿子——罗比•特纳(詹姆斯•迈克沃伊 饰)和她姐姐塞西利亚(凯特•奈特莉 饰)之间有暧昧关系,而且发现他给她写了一封充满情色意味的情书。布里奥妮丰富的想象力虚构着各种可怕的事情,浮想联翩。当她的表姐罗拉被强奸后,布里奥妮相当肯定她看到是罗比做的,这次指证使罗比蒙冤入狱,留下伤心欲绝的塞西利亚。
第二次世界大战爆发了,出狱后的罗比和塞西利亚都投入了保卫祖国的战斗,布利奥妮也成为了一名军队医务人员。经历世事之后的布里奥妮终于愧疚,主动走向罗比与塞西莉娅,为自己当年的所作所为道歉,但是无情的战争先后夺去了罗比和塞西利亚的生命,留下布里奥妮活在深深的自责中而无法赎罪。 © 豆瓣
----------------------------------------------------------------------------------------感受:文艺女青年害死人…… -
放个假
2008-03-22
今天俺过生日,给自己放个小假,打了N把WAR3,哇哈哈,宝刀未老呃!
重看一部电影《赎罪》--姜GG力荐。
和我家娘子吃了兴隆川菜馆,水煮鱼,哇,正点!
看了一会《深入浅出 C#》(《Head First C#》),先不说内容如何,打开看看整本书就知道,It's my style,如果你喜欢可以点击这里下载这本电子书,不过这是一个ED2K链接,迅雷和emule都能下载。
前些天,春寒料峭,刘主任、DWJ和俺压农大的马路。那叫一个风萧萧兮吖...俺只穿了一件单衣和Jack,耍单儿了,鼻涕和唾沫在风中飞舞……谈话内容属商业机密,不便透露。嘻嘻!~~~
刘主任的“要摇铃腰扭腰.com”在这个2008的春天悄然的消失了。怀念它,就像怀念七色光、xnovo一样,它们一样“生的伟大,死得其所”。
过生日真好,微软也送礼物MVC开源,可以去这里下载 -- 尽管俺没碰MVC
。
-
一步一步学Silverlight 2系列
2008-03-14
一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用
一步一步学Silverlight 2系列(4):鼠标事件处理
一步一步学Silverlight 2系列(5):实现简单的拖放功能
一步一步学Silverlight 2系列(6):键盘事件处理
一步一步学Silverlight 2系列(7):全屏模式支持
一步一步学Silverlight 2系列(8):使用样式封装控件观感
一步一步学Silverlight 2系列(9):使用控件模板
一步一步学Silverlight 2系列(10):使用用户控件
一步一步学Silverlight 2系列(12):数据与通信之WebClient
一步一步学Silverlight 2系列(13):数据与通信之WebRequest
一步一步学Silverlight 2系列(14):数据与通信之WCF
一步一步学Silverlight 2系列(15):数据与通信之ASMX
一步一步学Silverlight 2系列(16):数据与通信之JSON
一步一步学Silverlight 2系列(17):数据与通信之ADO.NET Data Services
一步一步学Silverlight 2系列(18):综合实例之RSS阅读器
一步一步学Silverlight 2系列(19):如何在Silverlight中与HTML DOM交互(上)
一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)
一步一步学Silverlight 2系列(21):如何在Silverlight中调用JavaScript
一步一步学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码持续更新中... ...
作者:TerryLee
出处:http://terrylee.cnblogs.com








