C#傳送郵件,使用System.Web.Mail的版本
第一次發表文章,也是我第一個使用C#編寫的程式,現在分享出來,希望前輩點評一下。
對於.net 2.0之前的技術中,微軟提供了一個名稱空間為System.Web.Mail的一系列類和方法,首先,寫出使用這個名稱空間提供的MailMessage和SmtpMail兩個類實現郵件傳送的功能。
using System;
using System.Collections;
using System.Text;
using System.Web.Mail;
namespace WebMailSend
{
class Programe
{
//some const string to show the mail infomation
//accout info would be replaced.
private const string mailFrom = "test_send@gmail.com";
private const string mailTo = "test_recieve@gmail.com";
private const string mailSubject = "Just a test Mail";
//some const string to create the smtp server and user
private const string sendServer = "stmp.gmail.com";
private const string sendUsr = "test_send@gmail.com";
private const string sendPwd = "######";
public static void Main(string[] args)
{
//create a mail to send
MailMessage myMail = new MailMessage();
myMail.From = mailFrom;//email from
myMail.To = mailTo;//email to: reciever's email address
myMail.Subject = mailSubject;//the email's subject
myMail.Body = "You are really success.";//the email's body
myMail.BodyEncoding = Encoding.UTF8;//the coding, in windows, usually is utf-8
myMail.BodyFormat = MailFormat.Text;//the body format html or text;
//myMail.Cc = ""; //
//myMail.Bcc = "";
//myMail.Priority = MailPriority.High | MailPriority.Low | MailPriority.Normal;
//set the mail to be certify needed
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
//set the user to be certified
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusername", sendUsr);
//the password of the account
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtppassword",sendPwd);
SmtpMail.SmtpServer = sendServer;
try
{
SmtpMail.Send(myMail);
}
catch (Exception e)
{
Console.WriteLine("Exception throw out:{0}", e.Message);
}
Console.WriteLine("Press any key to quit...");
Console.ReadKey();
}
}
}
對於這個程式中有一些要注意的地方: 1.第一個要提出的就是關於myMail.BodyEncoding = Encoding.UTF8的問題,一般來講windows系統中的郵件使用的都是這個編碼方式,如果採用其它的方式有可能會出現郵件傳送後變成亂碼的現象; 2.再一個就是myMail.Fields的使用,其中新增了三個域。分別是標註郵箱為使用者驗證,郵箱賬戶名,郵箱密碼三個屬性。myMail.Fields.Add(object key, object value)是繼承自System.Collections.IDictionay.Add(object key, object value)的方法,對於本程式,三個cdo.message的都是固定的,分別標註三種屬性,後面是對該屬性所賦予的值。 3.還有一個問題就是大家將會碰到的,現在市面上的主流郵箱很多已經不是預設支援外部程式呼叫smtp郵件傳送的,從而在執行程式時會產生很多異常,而且都是亂碼,不用擔心,這並不是程式的問題,而是System.Web.Mail的問題,這些異常當改用System.Net.Mail的時候就會被用中文標記出來。舉例:163,sina,126都是不可用的。 4.最後要提到的,該方法已經過時,System.Web.Mail類已經過時,其smtp服務期有很多屬性不能指定,包括埠,安全驗證等等,已經逐步被System.Net.Mail所替代。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-557577/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用C#傳送郵件C#
- 使用C#傳送正文帶圖片郵件C#
- .net System.Web.Mail傳送郵件的實際應用程式碼WebAI
- 使用phpmailer傳送郵件PHPAI
- 使用JavaMail傳送郵件JavaAI
- 使用nodemailer傳送郵件AI
- C#原生郵件傳送+傳送日誌記錄C#
- 郵件的傳送
- 使用python傳送郵件和接收郵件Python
- 郵件傳送
- 傳送郵件
- 使用 smtplib 傳送郵件
- 如何使用Excel傳送郵件?Excel
- 使用python傳送郵件Python
- c# 傳送郵件程式碼,帶附件C#
- 使用Spring的MailSender傳送郵件SpringAI
- Ubuntu的郵件傳送Ubuntu
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 配置mail使用SMTP傳送郵件AI
- .NET Core使用FluentEmail傳送郵件AI
- 使用阿里雲傳送郵件阿里
- Python使用SMTP傳送郵件Python
- 使用Linux命令傳送郵件Linux
- 配置ActionMailer使用GMail傳送郵件AI
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- C# 傳送電子郵件原始碼片段C#原始碼