.net发送邮件的一些技巧

王朝c#·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

用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.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 );

[ 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)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航