用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)
先引用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)