程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C# 郵件發送和接收實現代碼

C# 郵件發送和接收實現代碼

編輯:C#基礎知識
郵件發送
方法一:使用System.Web.Mail命名空間(此方法我測試沒有成功過) 
代碼如下:

#region 發送郵件:此方法失敗
protected void SendFailed()
{
System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.From = "test@ gmail.com";
mail.To = " test@ gmail.com ";
mail.Subject = "For Test";
mail.Priority = System.Web.Mail.MailPriority.Normal;
mail.BodyEncoding = Encoding.Default;
mail.BodyFormat = MailFormat.Html;
mail.Body = "this is a Email!<input type='button' value='ok'/>";
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "test"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "****"); //set your password here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", "smtp.gmail.com");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "587");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
SmtpMail.SmtpServer = "smtp.gmail.com";
SmtpMail.Send(mail);
}
#endregion

方法二:使用System.Net.Mail命名空間(此方法測試成功)
我使用的gmail的郵箱,以及他提供免費smtp服務,之前試了好幾個郵箱都不成功。Gmail的smtp服務必須經過ssl加密,才可以驗證成功。
代碼如下:

#region 發送郵件:此方法可行
protected void SendSuccess()
{
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.From = new MailAddress("[email protected]", "someone");//必須是提供smtp服務的郵件服務器
message.To.Add(new MailAddress("[email protected]"));
message.Subject = "測試郵件" ;
message.CC.Add(new MailAddress("[email protected]"));
message.Bcc.Add(new MailAddress("[email protected]"));
message.IsBodyHtml = true;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Body = "郵件發送測試";
message.Priority = System.Net.Mail.MailPriority.High;
SmtpClient client = new SmtpClient("smtp.gmail.com", 587); // 587;//Gmail使用的端口
client.Credentials = new System.Net.NetworkCredential("[email protected]", "password"); //這裡是申請的郵箱和密碼
client.EnableSsl = true; //必須經過ssl加密
try
{
client.Send(message);
Response.Write("郵件已經成功發送到" + message.To.ToString() + "<br>");
}
catch (Exception ee)
{
Response.Write(ee.Message + "<br>" /* + ee.InnerException.Message*/ );
}
}
#endregion

郵件接收
我使用的是LumiSoft.Net這個開源的項目,也是從一個網友哪裡看到的下載地址,然後自己看了下代碼,寫了個簡單的接收方法。首先將代碼中relrease目錄下的dll文件引用到項目中。 
代碼如下:

using LumiSoft.Net.POP3.Client;
using LumiSoft.Net.Mail;
……
public IList<Mail_Message> ReceiveMail()
{
IList<Mail_Message> mailList = new List<Mail_Message>();
using (POP3_Client client = new POP3_Client())
{
client.Connect("pop.gmail.com",995,true);
client.Authenticate("zw.seaman", "zw_seaman", false);
POP3_ClientMessageCollection coll = client.Messages;
for (int i = 0; i < coll.Count; i++)
{
POP3_ClientMessage message = coll[i];
Mail_Message mm = Mail_Message.ParseFromByte(coll[i].MessageToByte());
mailList.Add(mm);
}
}
return mailList;
}
protected void Page_Load(object sender, EventArgs e)
{
IList<Mail_Message> mailList = new ZMail.Mail().ReceiveMail();
foreach (Mail_Message mail in mailList)
{
StringBuilder sb = new StringBuilder();
sb.Append(mail.From.ToString()).Append("  發送給  ");
sb.Append(mail.To.ToString()).Append("<br/>") ;
sb.Append(mail.Subject).Append("<br/>");
sb.Append(mail.BodyHtmlText).Append("<hr/>");
Response.Write(sb.ToString());
}
}

這兩個方法很容易理解,只實現了最基本的功能,如果需要可以查看源代碼獲取更多信息。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved