ASP.NET中使用System.Net.Mail發郵件

一、應用場合。

網站註冊的時候,會發一個確認郵件;密碼丟失了,發郵件找回密碼;給用戶發廣告信息等等。

二、一般的郵件發送。

public static void SendMail()//普通的郵件發送
{
    MailAddress from = new MailAddress("[email protected]");
    MailAddress to = new MailAddress("[email protected]");
    MailMessage message = new MailMessage(from, to);
    message.Subject = "郵件標題";
    message.Body = "郵件內容";
    MailAddress copy = new MailAddress("[email protected]");//抄送給
    message.CC.Add(copy);
    SmtpClient client = new SmtpClient("SMTP Server");

    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
}

三、帶HTML格式的Email發送

public static void SendMail()//帶HTML的郵件發送
{
    MailAddress from = new MailAddress("[email protected]");
    MailAddress to = new MailAddress("[email protected]");
    MailMessage message = new MailMessage(from, to);
    message.Subject = "郵件標題";

    string plainTextBody = "如果你郵件客戶端不支持HTML格式,或者你切換到“普通文本”視圖,將看到此內容";
    message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainTextBody, null, "text/plain"));
    string htmlBodyContent = "如果你的看到<b>這個</b>,說明你是在以 <span style="color:red">HTML</span> 格式查看郵件<br><br>";
    htmlBodyContent += "<a href="http://www.baidu.com/\">百度一下</a>";
    AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(htmlBodyContent, null, "text/html");
    message.AlternateViews.Add(htmlBody);

    MailAddress copy = new MailAddress("[email protected]");//抄送給
    message.CC.Add(copy);
    SmtpClient client = new SmtpClient("SMTP Server");

    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
}

四、帶附件的郵件

public static void SendMail()//帶HTML的郵件發送
{
    MailAddress from = new MailAddress("[email protected]");
    MailAddress to = new MailAddress("[email protected]");
    MailMessage message = new MailMessage(from, to);
    message.Subject = "郵件標題";

    string plainTextBody = "如果你郵件客戶端不支持HTML格式,或者你切換到“普通文本”視圖,將看到此內容";
    message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainTextBody, null, "text/plain"));
    string htmlBodyContent = "如果你的看到<b>這個</b>,說明你是在以 <span style="color:red">HTML</span> 格式查看郵件<br><br>";
    htmlBodyContent += "<a href="http://www.baidu.com/\">百度一下</a>";
    AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(htmlBodyContent, null, "text/html");
    message.AlternateViews.Add(htmlBody);

    Attachment attachment = new Attachment("C:\\附件.rar");
    message.Attachments.Add(attachment);

    MailAddress copy = new MailAddress("[email protected]");//抄送給
    message.CC.Add(copy);
    SmtpClient client = new SmtpClient("SMTP Server");

    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
}
五、郵件爲HTML,而且帶圖片。

public static void SendMail()//帶HTML,並且HTML中有圖片的郵件發送
{
    MailAddress from = new MailAddress("[email protected]");
    MailAddress to = new MailAddress("[email protected]");
    MailMessage message = new MailMessage(from, to);
    message.Subject = "郵件標題";

    string plainTextBody = "如果你郵件客戶端不支持HTML格式,或者你切換到“普通文本”視圖,將看到此內容";
    message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainTextBody, null, "text/plain"));
    string htmlBodyContent = "如果你的看到<b>這個</b>,說明你是在以 <span style="color:red">HTML</span> 格式查看郵件<br><br>";
    htmlBodyContent += "<a href="http://www.baidu.com/\">百度一下</a><img src="cid:imageInEmail"/>";
    AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(htmlBodyContent, null, "text/html");
   
    LinkedResource lrImage = new LinkedResource("C:\\圖片.jpg", System.Net.Mime.MediaTypeNames.Image.Jpeg);
    lrImage.ContentId = "imageInEmail"; //此處的ContentId 對應 htmlBodyContent 內容中的 cid: ,如果設置不正確,請不會顯示圖片
    htmlBody.LinkedResources.Add(lrImage);

    message.AlternateViews.Add(htmlBody);

    MailAddress copy = new MailAddress("[email protected]");//抄送給
    message.CC.Add(copy);
    SmtpClient client = new SmtpClient("SMTP Server");

    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
}

六、圖片爲動態生成。

public static void SendMail()//帶HTML,並且HTML中有圖片的郵件發送
{
    MailAddress from = new MailAddress("[email protected]");
    MailAddress to = new MailAddress("[email protected]");
    MailMessage message = new MailMessage(from, to);
    message.Subject = "郵件標題";

    string plainTextBody = "如果你郵件客戶端不支持HTML格式,或者你切換到“普通文本”視圖,將看到此內容";
    message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainTextBody, null, "text/plain"));
    string htmlBodyContent = "如果你的看到<b>這個</b>,說明你是在以 <span style="color:red">HTML</span> 格式查看郵件<br><br>";
    htmlBodyContent += "<a href="http://www.baidu.com/\">百度一下</a><img src="cid:imageInEmail"/>";
    AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(htmlBodyContent, null, "text/html");

    MemoryStream imgStream = GetImage();
    imgStream.Position = 0;//非常重要,否則圖片爲空!!!!!在郵件裏顯示紅叉
    LinkedResource lrImage = new LinkedResource(imgStream, System.Net.Mime.MediaTypeNames.Image.Jpeg);
    lrImage.ContentId = "imageInEmail"; //此處的ContentId 對應 htmlBodyContent 內容中的 cid: ,如果設置不正確,請不會顯示圖片
    htmlBody.LinkedResources.Add(lrImage);

    message.AlternateViews.Add(htmlBody);

    MailAddress copy = new MailAddress("[email protected]");//抄送給
    message.CC.Add(copy);
    SmtpClient client = new SmtpClient("SMTP Server");

    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
}

public static MemoryStream GetImage()
{
    //Code here... ...
}


---轉載:http://blog.sina.com.cn/s/blog_4e7d38260100dq1l.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章