荷梅月剑 编程之路

这个世界没有偶然,有的只是必然
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

发送Email的代码(全)

Posted on 2007-08-14 13:27  荷梅月剑  阅读(680)  评论(0)    收藏  举报

发送Email
用System.Web.Mail发送邮件,适用于.net1.1,.net2.0请用System.Net.Mail
先引用System.Web



1,发送简单邮件

[ C# ]

MailMessage mail = new MailMessage();
mail.To 
= "me@mycompany.com";
mail.From 
= "you@yourcompany.com";
mail.Subject 
= "this is a test email.";
mail.Body 
= "this is my test email body";
SmtpMail.SmtpServer 
= "localhost";  //your real server goes here
SmtpMail.Send( mail );

 

[ VB.NET ]

Dim mail As New MailMessage()
mail.To 
= "me@mycompany.com"
mail.From 
= "you@yourcompany.com"
mail.Subject 
= "this is a test email."
mail.Body 
= "this is my test email body"
SmtpMail.SmtpServer 
= "localhost" 'your real server goes here
SmtpMail.Send(mail)

这里的smtpserver只能是那些不需要验证的smtp服务器,像126,sina,yahoo等等的邮箱,都需要验证,所以不能用。用这些邮箱发信后面会讲到



2,发送Html邮件

[ C# ]

MailMessage mail = new MailMessage();
mail.To 
= "me@mycompany.com";
mail.From 
= "you@yourcompany.com";
mail.Subject 
= "this is a test email.";
mail.Body 
= "this is my test email body.";
MailAttachment attachment 
= new MailAttachment( Server.MapPath( "test.txt" ) ); //create the attachment
mail.Attachments.Add( attachment ); //add the attachment
SmtpMail.SmtpServer = "localhost";  //your real server goes here
SmtpMail.Send( mail );

[ VB.NET ]

Dim mail As New MailMessage()
mail.To 
= "me@mycompany.com"
mail.From 
= "you@yourcompany.com"
mail.Subject 
= "this is a test email."
mail.BodyFormat 
= MailFormat.Html
mail.Body 
= "this is my test email body.<br><b>this part is in bold</b>"
SmtpMail.SmtpServer 
= "localhost" 'your real server goes here
SmtpMail.Send(mail)


3,发送附件

[ C# ]

MailMessage mail = new MailMessage();
mail.To 
= "me@mycompany.com";
mail.From 
= "you@yourcompany.com";
mail.Subject 
= "this is a test email.";
mail.Body 
= "this is my test email body.";
MailAttachment attachment 
= new MailAttachment( Server.MapPath( "test.txt" ) ); //create the attachment
mail.Attachments.Add( attachment ); //add the attachment
SmtpMail.SmtpServer = "localhost";  //your real server goes here
SmtpMail.Send( mail );

[ VB.NET ]

Dim mail As New MailMessage()
mail.To 
= "me@mycompany.com"
mail.From 
= "you@yourcompany.com"
mail.Subject 
= "this is a test email."
mail.Body 
= "this is my test email body."
Dim attachment As New MailAttachment(Server.MapPath("test.txt")) 'create the attachment
mail.Attachments.Add(attachment) 'add the attachment
SmtpMail.SmtpServer = "localhost" 'your real server goes here
SmtpMail.Send(mail)

 

4,修改发件人和收件人的名称
比如发件人的地址是abc@126.com,我们用outlook收到信,From一栏里将直接显示abc@126.com.
能不能在From一栏里显示友好一点的名字呢?
比如显示Tony Gong
方法如下:

[ C# ]

MailMessage mail = new MailMessage();
mail.To 
= "\"John\" <me@mycompany.com>";
mail.From 
= "\"Tony Gong\" <you@yourcompany.com>";
mail.Subject 
= "this is a test email.";
mail.Body 
= "this is my test email body.";
SmtpMail.SmtpServer 
= "localhost";  //your real server goes here
SmtpMail.Send( mail );

[ VB.NET ]

Dim mail As New MailMessage()
mail.To 
= """John"" <me@mycompany.com>"
mail.From 
= """Tony Gong"" <you@yourcompany.com>"
mail.Subject 
= "this is a test email."
mail.Body 
= "this is my test email body."
SmtpMail.SmtpServer 
= "localhost" 'your real server goes here
SmtpMail.Send(mail)


5,发送给多人

[ C# ]

MailMessage mail = new MailMessage();
mail.To 
= "me@mycompany.com;him@hiscompany.com;her@hercompany.com";
mail.From 
= "you@yourcompany.com";
mail.Subject 
= "this is a test email.";
mail.Body 
= "this is my test email body.";
SmtpMail.SmtpServer 
= "localhost";  //your real server goes here
SmtpMail.Send( mail );

[ VB.NET ]

Dim mail As New MailMessage()
mail.To 
= "me@mycompany.com;him@hiscompany.com;her@hercompany.com"
mail.From 
= "you@yourcompany.com"
mail.Subject 
= "this is a test email."
mail.Body 
= "this is my test email body."
SmtpMail.SmtpServer 
= "localhost" 'your real server goes here
SmtpMail.Send(mail)

 

6,用需要Smtp验证的邮箱发信
现在为了防止垃圾邮件,绝大部分Smtp服务器需要验证了
发信方法如下:

[ C# ]

 MailMessage mail = new MailMessage();
 mail.To 
= "me@mycompany.com";
 mail.From 
= "abc@126.com";
 mail.Subject 
= "this is a test email.";
 mail.Body 
= "Some text goes here";
 mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1"); //basic authentication
 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername""abc"); //set your username here
 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword""your password"); //set your password here

 SmtpMail.SmtpServer 
= "smtp.126.com";  //your real server goes here
 SmtpMail.Send( mail );

[ VB.NET ]

   Dim mail As New MailMessage()
   mail.To 
= "me@mycompany.com"
   mail.From 
= "abc@126.com"
   mail.Subject 
= "this is a test email."
   mail.Body 
= "Some text goes here"
   mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1"'basic authentication
   mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername""abc"'set your username here
   mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword""Your Password"'set your password here
   SmtpMail.SmtpServer = "smtp.126.com" 'your real server goes here
   SmtpMail.Send(mail)

 

7,修改smtp服务器的端口,以及使用SSL加密
大部分smtp服务器的端口是25,但有些却不是
同时,绝大部分Smtp服务器不需要SSL登陆,有些却需要
比如Gmail,smtp端口是:465,同时支持SSL
代码如下:

[ C# ]

MailMessage mail = new MailMessage();
mail.To 
= "me@mycompany.com";
mail.From 
= "abc@126.com";
mail.Subject 
= "this is a test email.";
mail.Body 
= "Some text goes here";
mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername""abc"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword""your password"); //set your password here

mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport",465);
mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpusessl""true");
SmtpMail.SmtpServer 
= "smtp.126.com";  //your real server goes here
SmtpMail.Send( mail );

[ VB.NET ]

Dim mail As New MailMessage()
mail.To 
= "me@mycompany.com"
mail.From 
= "abc@126.com"
mail.Subject 
= "this is a test email."
mail.Body 
= "Some text goes here"
mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1"'basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername""abc"'set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword""Your Password"'set your password here

mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport",465)
mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpusessl""true")

SmtpMail.SmtpServer 
= "smtp.126.com" 'your real server goes here
SmtpMail.Send(mail)