c#之 簡單stmp/pop郵件服務(一)-------傳送郵件
大家好!
很高興和大家分享,郵件服務操作。我也是昨天剛剛學會的!呵呵,希望對大家有用。
c#的郵件服務,主要有兩種。
一種是利用JMail元件,進行收發。
另一種是利用vs自帶的stmp/pop3郵件服務,來實現。
我將要講解的是利用stmp/pop3郵件服務。原因無它。vs自己就有,無需安裝外掛之類。
首先,我們要新增stmp/pop3郵件服務類的名稱空間:
using System.Net.Mail;
接下來,我給出原始碼,並給出詳細註釋!是一個郵件傳送函式,已測試成功。
如果你只想用,而不想理解那麼多細節,那麼在最後面,我給出了一個比較精簡的傳送郵箱函式(點選此處連結),希望,對你有幫助!
/// <summary>
/// 郵件傳送
/// </summary>
/// <param name="strTo">收信物件郵箱</param>
/// <param name="strSubject">郵件主題</param>
/// <param name="strBody">郵件內容</param>
public static bool SendEmail(string strTo, string strSubject, string strBody)
{
string strSmtpServer = "smtp.163.com"; //163郵件伺服器
string strFrom = "*****@163.com"; //使用者郵箱
string strFromPass = "****";//使用者密碼
//string strSmtpServer = "smtp.qq.com"; //qq郵件伺服器
//string strSmtpServer = "202.108.3.190"; //新浪郵件伺服器
SmtpClient client = new SmtpClient(strSmtpServer);//建立郵箱伺服器物件
client.UseDefaultCredentials = false;//獲取或設定是否使用預設憑據訪問 Web 代理伺服器
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);//建立使用者物件
client.DeliveryMethod = SmtpDeliveryMethod.Network;//投遞方式
MailMessage message = new MailMessage(); //建立郵件物件
message.From = new MailAddress(strFrom); //發信人地址
message.To.Add(strTo); //新增收信人地址
message.Subject = strSubject; //郵件主題
message.Body = strBody; //郵件內容
//當然,你也把上面五條語句簡化為如下:
//MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
//新增附件,要注意的是,傳送附件可能會慢點,耐心等下!
//Attachment attachment = new Attachment("e://a.xls"); //建立附件物件,括號內參數為要新增的附件所在的地址
// message.Attachments.Add(attachment); //新增到郵件
message.BodyEncoding = System.Text.Encoding.UTF8;//獲取或設定用於郵件正文的編碼
message.IsBodyHtml = true;//取得或設定值,指出電子郵件的主體是否為 HTML
if (!string.IsNullOrEmpty(strBody))//判斷郵件內容是否為空
{
try
{
client.Send(message);//傳送
MessageBox.Show("傳送成功!");
return true;
}
catch(Exception ex)
{
MessageBox.Show("傳送失敗:"+ex.Message);
return false;
}
}
else
{
MessageBox.Show("不能傳送空資訊!");
return false;
}
}
這裡,再舉一個呼叫該函式的例子:
SendEmail("*****@qq.com","測試", "傳送成功!");
這裡還要說明下郵件服務的一些細節,對於發郵件而言是stmp協議,而要接收郵件把stmp改成pop就可以,在以後的文章中,
將介紹到如何接收郵件:
1.qq郵箱
郵件伺服器:smtp.qq.com
但要注意一點,qq的stmp/pop3服務必須開啟才能連線,開啟方法詳見:
2.163郵箱
郵件伺服器:smtp.163.com
3.新浪郵箱
郵件伺服器:202.108.3.190
對於想設定為新浪郵箱的伺服器的朋友,有三點要注意下:
1.伺服器名設定不能用stmp.sina.com, 而是用它的ip地址,不信,你試試。
2.它的stmp/pos3功能要手動開啟,方法同qq一樣,這裡就不重複了。
3.它不能傳送qq郵件
下面是上面程式碼的精簡版:
/// <summary>
/// 郵件傳送
/// </summary>
/// <param name="strTo">收信物件郵箱</param>
/// <param name="strSubject">郵件主題</param>
/// <param name="strBody">郵件內容</param>
public static bool SendEmail2(string strto, string strSubject, string strBody)
{
string strSmtpServer = "smtp.163.com"; //163郵件伺服器
string strFrom = "*******@163.com";
string strFromPass = "*******";
SmtpClient client = new SmtpClient(strSmtpServer);
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
//新增附件,要注意的是,傳送附件可能會慢點,耐心等下!
//Attachment attachment = new Attachment("e://a.xls"); //建立附件物件,括號內參數為要新增的附件所在的地址
//message.Attachments.Add(attachment); //新增到郵件
try
{
client.Send(message);
MessageBox.Show("傳送成功!");
return true;
}
catch (Exception ex)
{
MessageBox.Show("傳送失敗:" + ex.Message);
return false;
}
}
講完了!
希望,對大家有用!
在後面,我將繼續和大家分享郵件的一些基本應用。
相關推薦
c#之 簡單stmp/pop郵件服務(一)-------傳送郵件
大家好! 很高興和大家分享,郵件服務操作。我也是昨天剛剛學會的!呵呵,希望對大家有用。 c#的郵件服務,主要有兩種。 一種是利用JMail元件,進行收發。 另一種是利用vs自帶的stmp/pop3郵件服務,來實現。 我將要講解的是利用stmp/pop3郵件服務。原因無它。vs
C之基本數據類型(一)
C 數據類型 我們今天來開始學習 C 語言了,那麽 C 語言是最基礎的語言,學好 C 語言有助於我們以後更好的學習其他語言。那麽今天我們就來了解下 C 語言中的數據類型。 那麽什麽是數據類型呢?我們可以這樣來理解:數據類型可以理解為固定內存大小的別名,它是創建變量的模子。
從零開始學C++之虛擬函式與多型(一):虛擬函式表指標、虛解構函式、object slicing與虛擬函式、C++物件模型圖
#include <iostream>using namespace std;class CObject {public: virtual void Serialize() { cout << "CObject::Serialize ..." <&
C#之淺析面向物件程式設計思想(一)
縱觀MicroSoft公司的幾種主流語言,C是面向過程,VB既有面向過程也有面向物件的特性,而C#則是純粹的面向物件的程式語言。在UML的學習過程中,畫類圖、物件圖的時候面向物件的思想就已經用到了具體的學習中,而C#的學習過程中我們接著深入來學習這種思想,只不過這次是
Python(一):傳送郵件Python版
【前言】 之前在《Java基礎(八):傳送郵件》博文中實踐瞭如何利用Java程式去傳送郵件,最近自己用Python寫了幾個小程式;結合自己在工作中經常有在伺服器上發郵件的需求,Linux對Python的支援沒得說,於是自己通過在網上學習自己實踐寫了個傳送郵件的
socket實現的簡單的ftp服務(一)
socket 中文 add blog style log 實現簡單 port 數據 用 socket實現簡單的ftp服務ex:服務端 1 import socket,os 2 server=socket.socket() 3 server.bind(("localh
C之有符號與無符號(二)
C語言 有符號數 無符號數 我們在 C 語言中經常會見到 unsigned 關鍵字,那麽這是什麽意思呢?在計算機內,數據類型分為有符號和無符號兩種類型。它的最高位用於標識數據的符號:如果最高位為 1,表明這個數為負數;如果是0的則表明這個數為正數。那麽我們就來做個試驗驗證下,代碼如
C之單引號和雙引號(十三)
C語言 單引號 雙引號 在 C 語言中,我們會經常使用到單引號和雙引號。那麽單引號用來表示字符字面量,雙引號是用來表示字符串字面量。 'a' 表示字符字面量,在內存中占1個字節; 'a' + 1表示 'a' 的 ASCI
C語言之你不得不知的陣列(一)
1、強制型別轉換運算子: (double)a --------------------(將a轉換為double型別) (int)(x+y)-------------------(將x+y的值轉換為int型別) &n
基於Visual C++之Windows核心程式設計程式碼分析(1)實現裝置管理器列舉裝置
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
新人上手TensorFlow 之 簡單瞭解一下Batch Normalization (BN)
author: 張俊林 轉載自:http://blog.csdn.net/malefactor/article/details/51476961 Batch Normalization作為最近一年來DL的重要成果,已經廣泛被證明其有效性和重要性。目前幾乎已經成為DL的標配了,任何有志於
Unity3D 利用C#實現簡單的代理模式Delegate(委託)
Ref: http://www.cnblogs.com/shadow7/p/5892641.html 1、Delegate是什麼? Delegate中文翻譯為“委託”。 C#語言是支援代理的,
基於visual c++之windows核心程式設計程式碼分析(21)獲取和設定環境變數
環境變數是一個具有特定名字的物件,它包含了一個或者多個應用程式所將使用到的資訊。例如path,當要求系統執行一個程式而沒有告訴它程式所在的完整路徑時,系統除了在當前目錄下面尋找此程式外,還應到path中指定的路徑去找。使用者通過設定環境變數,來更好的執行程序。 環境變數一
C++效能系列之靜態程式碼檢查工具介紹(一)
FxCop Integrator允許將獨立的FxCop(1.36或10.0)和Code Metrics PowerTool 10.0整合到VS2010中。 最新版本(2.0.0 RTW)包含以下新功能: 支援使用程式碼度量PowerTool的計算程式碼
James+Javamail構建郵件服務(五)
10.1 Javamail常見問題 1、接收或傳送郵件時,提示如下報錯: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream at javax.mail.Session.loa
深入C/C++之基於CheckStackVars的安全檢查(VS2008)
最近一直忙畢業的相關事情,加上工作,轉眼間,又到月底了,之前承諾的每月一篇博文,前幾天就一直在尋找到底要寫什麼,近兩天又突然發現有很多東西可以寫。本篇就先延續之前的一篇基於Cookie的安全檢查機制(深入C/C++之基於Cookie的安全檢查(VS2005))來介紹下另外一種
基於visual c++之windows核心程式設計程式碼分析(18)遠端程式碼注入執行
我們進行系統級別的安全監控的時候,防範木馬的時候,經常需要進行遠端程式碼注入執行。執行步驟如下1. 提升程序許可權,如果許可權不夠的話,很容易造成 OpenProcess 失敗;2. 確定你的宿主程序,即你所要注入程式碼的程序,這個其實很好辦,你要是不想你的木馬或者病毒被別個
C#之淺析面向物件程式設計思想(二)
<pre name="code" class="csharp">//My concern is my chief concern. 俗話說:“龍生龍鳳生鳳,老鼠的兒子會打洞”,可見在生活中,這種面向物件的思想(既“繼承”)已經深入人心,這篇部落格,就
基於visual c++之windows核心程式設計程式碼分析(61)打造自己的Windows輸入法
IMM(Input Method Manager)只在安裝了亞洲語言包之後才能使用。通過呼叫GetSystemMetrics(SM_IMMENABLED)知道IMM是否使能。一共由三部分組成:status window 輸入法狀態列 表示正在處於中文輸入狀態可以知道是什
James+Javamail構建郵件服務(三)
Mailet API是一個用來建立郵件處理程式的簡單的API,它被配置在郵件伺服器端執行,分匹配器Matcher和Mailet的介面兩種,匹配器根據特定的條件匹配郵件訊息,並觸發相應的Mailet. Mailet這個詞是跟Servlet相似,功能也相似,他們的共同之處都是在伺服器端觸發並執行,只是Serv