asp.net中C# 利用MailMessage發送郵件代碼

來源:互聯網
上載者:User

MailMessage發送郵件的例子:C# 發送郵件的Helper類 主要就是用Web命名空間下的Mail.Mailmessage類用此類發送郵件主要就是對MailMessage類的執行個體設定一些屬性,然後用SmtpMail指定smtp伺服器發送。代碼如下:

 代碼如下 複製代碼

<span id="more-1794"></span>

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net.Mail;

using System.Net.Mime;

using System.IO;

using System.Timers;

using System.Xml;

using System.Net;

namespace TEST.SUBUNIT

{

public class EmailHelper

{

public MailMessage mailMessage(string fromAddress,string desemailuser, string toAddress, string emailSubject, string emailText) //郵件的發送收者,支援群發,多個地址之間用 半形逗號 分開

{

MailMessage mm = new MailMessage();

mm.To.Add("abc@qq.com");

//mm.To.Add(toAddress);//暫時屏蔽

////抄送

mm.CC.Add(new MailAddress("11@qq.com", "張三", Encoding.GetEncoding(936)));

mm.CC.Add(new MailAddress("22@qq.com", "李四", Encoding.GetEncoding(936)));

mm.CC.Add(new MailAddress("33@126.com", "王五", Encoding.GetEncoding(936)));

//mm.Bcc.Add("44@qq.com,44@qq.com");

 

mm.From = new MailAddress(fromAddress, desemailuser.Length&gt;0?desemailuser:fromAddress, Encoding.GetEncoding(936));

mm.SubjectEncoding = Encoding.GetEncoding(936);//這裡非常重要,如果你的郵件標題包含中文,這裡一定要指定,否則對方收到的極有可能是亂碼。

mm.Subject = emailSubject; //郵件標題

mm.IsBodyHtml = true; //郵件內文是否是HTML格式

 

mm.BodyEncoding = Encoding.GetEncoding(936); //郵件內文的編碼, 設定不正確, 接收者會收到亂碼

//-------------------------------------------------------------------------

emailText += "這是要正確發送的郵箱:" + toAddress;

mm.Body = emailText;//郵件內文

mm.Priority = MailPriority.High; //郵件的優先順序,分為 Low, Normal, High,通常用 Normal即可

//mm.Attachments.Add(new Attachment(@"d:a.doc",System.Net.Mime.MediaTypeNames.Application.Rtf));

////第二個參數,表示附件的檔案類型,可以不用指定

return mm;

}

 

public bool sendEmail(string fromemailaddress, string toemailaddress,string emailtitle,string emailcontent,string host,string port,string fromemailuser,string desemailuser,string fromemailpass)

{

bool b=false;

 

string message=string.Empty;

 

MailMessage mailessage =this.mailMessage(fromemailaddress,desemailuser,toemailaddress,emailtitle,emailcontent);

SmtpClient smtp = new SmtpClient(); //執行個體化一個SmtpClient

smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //將smtp的出站方式設為 Network

smtp.EnableSsl = false;//smtp伺服器是否啟用SSL加密

smtp.Host = host; //指定 smtp 伺服器位址

smtp.Port = int.Parse(port); //指定 smtp 伺服器的連接埠,預設是25

smtp.Credentials = new NetworkCredential(fromemailuser, fromemailpass);//認證

try

{

smtp.Send(mailessage);

b = True;

message= "發送成功!";

}

catch (System.Net.Mail.SmtpException ex)

{

b = False;

message= "發送失敗!";

}

return b;

}

 

}

}

例2

 代碼如下 複製代碼
using Systme.Web.Mail;//引入命名空間
protected void Button1_Click(object sender, EventArgs e)
{
   MailMessage mmsg = new MailMessage();//執行個體一個mailmessage
   mmsg.Priority = MailPriority.Low;//設定優先權別
   mmsg.From = "weicfprince@163.com";//寄件者
   mmsg.To = "weicfprince@hotmail.com";//收件者
   mmsg.BodyFormat = MailFormat.Text;//本文格式
   mmsg.Subject = "郵件發送測試";
   mmsg.Body = "我給我自己另一個郵箱發送了一個文本郵件";
   mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
   //寄件者郵箱資訊   
   mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "weicfprince");
   mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "******");//密碼在此保密哈哈
   SmtpMail.SmtpServer = "smtp.163.com";//指定smtp伺服器
        try
        {
            SmtpMail.Send(mmsg);//發送郵件
            Response.Write("1");
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }

當然也還可以發送附件,用MailAttachments,它提供屬性和方法來建立一個郵件附件對象.
MailAttachments ma= new MailAttachment( "d://test.txt" );//發送郵件的附件
mmsg.Attachments.Add( ma);//將附件附加到郵件訊息對象中 

以上是完全可以實現發送郵件功能的,只是有些郵箱不可以發送,原因還是不太清楚。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.