asp.net发送邮件
最近tonny让我做一个发邮件的模块,问我做过没?我很坦然,米有,但是我可以学...
好吧,他说,那你就试着研究研究....
恩,以前完全没做过这类东西,怎么开始?baidu,google先派上用场,搜索框中键入asp.net 发送邮件,哇,这种东西的确很多,一大堆一大堆的,眼都看花,各种乱..
于是乎,ctrl+c,ctrl+v一大段下来再说,好了,各种下划红线出现了,各种过时出现了,请您用XXX替换...根据提示,慢慢查阅msdn文档,倒也慢慢有了些眉目...
原来,所谓的过时,用的是.net 1.1中 System.Web.Mail这个类库,而现在俨然已经发展到4.0了,当然过时了啊...提示用System.Net.Mail替换,那就替换吧...一步一步的...
其实嘛,参照MailMessage这个类下的属性,再想象一下发邮件的过程,其实也是很简答的.
发邮件,你首先要有发件人啊,那就有From这个属性...
其次,你得有收件人啊,那就有To这个属性...
当然,主题,正文,抄送.....都有的,依次类推.....名字都顾名思义...
蛮好理解的...依次把这个属性赋值就差不多拉...
当然,你要用别人的邮箱发送的话,当然要知道别人邮件服务器的地址啊,还得是免费的吧,我想....
在网上找了一下,发现163的邮箱服务器地址smtp.163.com
于是乎,便出现了
就是用某一地址填充服务器内容啊....也还好理解了...
当然,如果偶用163的邮箱发邮箱的话,那么当我用.net程序登陆邮箱的时候需要有一个验证啊,必须知道我的用户名和密码啊...
那么这个NetworkCredential东东就可以派上用场了...
这个类下面有很多构造函数,我选定的是
还有选定域的(domain)ps:在公司的话,一个域里就不需要验证了,我试着在公司内部发送邮件,这部分验证的就没设计,只需填写收件人,发件人,以及公司的邮件服务器就可以发送了...
当然,还可以添加附件的,比如桌面的某一个东西,下面的语句便可完成附件的添加,当然是实实在在存在的东西了...:-D
至此,基本准备工作都完成的差不多了,接下来SmtpClient类下实例的sent方法便可以完成邮件发送工作,而无需再去理睬底层的tip,ip,socket这些头疼的东西了...
基本上,就是这个思路..我把它写成了一个方法,以便调用....
{
try
{
MailMessage message = new MailMessage(strFrom, strTo, strSubject, StrBody);
SmtpClient client = new SmtpClient(strServer);
client.Credentials = new NetworkCredential(strUserName, strPwd);
if (cc.Length != 0)
{
string[] strCcs = cc.Split(',');
foreach(string strCc in strCcs)
{
MailAddress copy = new MailAddress(strCc);
message.CC.Add(copy);
}
}
//message.Attachments.Add(new Attachment(@"C:\Documents and Settings\tmac_\桌面\delegate.pdf"));
client.Send(message);
return true;
}
catch
{
return false;
}
}
差不多就是这样吧...
但是,还有一点没搞明白的...就是如果上传附件的话,我要取文件的绝对路径,也就是像C:\Documents and Settings\tmac_\桌面\delegate.pdf这样的路径,我在公司的话用this.FileUpload1.PostedFile.FileName就能取到...但是我回家就只能取到delegate.pdf这个东西了,非常奇怪非常奇怪...有图片为证...先上家的图片,明天再传公司的图片...
就是只取到文件名了,我靠...明儿再贴公司的...奇了怪..
浙公网安备 33010602011771号