1. 程式人生 > >關於在C#中使用MailMessage發郵件後附件被鎖定的問題

關於在C#中使用MailMessage發郵件後附件被鎖定的問題

正常的釋放方法:

		public static void CreateMessageWithAttachment(string server)
		{
			// Specify the file to be attached and sent.
			// This example assumes that a file named Data.xls exists in the
			// current working directory.
			string file = "data.xls";
			// Create a message and set up the recipients.
			MailMessage message = new MailMessage(
			   "
[email protected]
", "[email protected]", "Quarterly data report.", "See the attached spreadsheet."); // Create the file attachment for this e-mail message. //這裡建立附件 Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); // Add time stamp information for the file. ContentDisposition disposition = data.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(file); disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); disposition.ReadDate = System.IO.File.GetLastAccessTime(file); // Add the file attachment to this e-mail message. //這裡新增附件 message.Attachments.Add(data); //Send the message. SmtpClient client = new SmtpClient(server); // Add credentials if the SMTP server requires them. client.Credentials = CredentialCache.DefaultNetworkCredentials; try { client.Send(message); } catch (Exception ex) { Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", ex.ToString() ); } // Display the values in the ContentDisposition for the attachment. ContentDisposition cd = data.ContentDisposition; Console.WriteLine("Content disposition"); Console.WriteLine(cd.ToString()); Console.WriteLine("File {0}", cd.FileName); Console.WriteLine("Size {0}", cd.Size); Console.WriteLine("Creation {0}", cd.CreationDate); Console.WriteLine("Modification {0}", cd.ModificationDate); Console.WriteLine("Read {0}", cd.ReadDate); Console.WriteLine("Inline {0}", cd.Inline); Console.WriteLine("Parameters: {0}", cd.Parameters.Count); foreach (DictionaryEntry d in cd.Parameters) { Console.WriteLine("{0} = {1}", d.Key, d.Value); } //這裡才是釋放附件解除鎖定的地方,而網上大多數是說使用message.Attachments.Dispose(),但我試了就是不能解除鎖定 data.Dispose(); }

相關推薦

關於在C#使用MailMessage郵件附件鎖定的問題

正常的釋放方法: public static void CreateMessageWithAttachment(string server) { // Specify the file to be attached and sent. // This e

C++的前置和置++

增量 後置 內置 因此 效率 要求 來講 註意 對象 在C++中進行操作符重載的時候,前置++返回的是一個引用。 這就設計到了對於基本變量進行前置操作時候的理解了。 例如,對於int類型變量,在進行前置++的時候,是會將i進行加1,然後返回i的引用。而i++是先創建一個i的

在SpringBoot整合郵件的功能

今天在看自己的一個SpringBoot專案,看到自己以前的一個老專案中的一個發郵件的功能,變想再SpringBoot中整合發郵件的功能; 一:專案依賴;   <!-- javax.mail --> <dependency> <groupId

1.3windows命令列下使用blat郵件附件

windows命令列bat批處理指令碼的應用之blat程式自動發郵件1.3windows命令列下使用blat發郵件帶附件__遊旗丶引莫(孫忠) 發郵件指令碼模板 rem ----郵件內容-----set body="test mail" rem ----郵件主題----set s="測試test"

1.3windows命令行下使用blat郵件附件

rem cad 郵件 rac href mtp -s com flag windows命令行bat批處理腳本的應用之blat程序自動發郵件1.3windows命令行下使用blat發郵件帶附件__遊旗丶引莫(孫忠) 發郵件腳本模板 rem ----郵件內容-----se

C#自動傳送郵件的實現

原始碼: using System; using System.Windows.Forms; using System.Net.Mail; using System.Text.RegularExpressions; namespace 郵件 { public partial clas

郵件包含附件

public class SendMailService { public void createTs(EmailDto emailDto) throws MessagingException, IOException { Properties prop = new Pro

Java Mail---SMTP協議-Java郵件(帶附件)演示過程

轉載請註明出處: http://blog.csdn.net/qq_26525215 本文源自 JavaMail-API簡介: 郵件客戶端的主要任務是向郵件伺服器傳送郵件,以及接收來自郵件伺服器的郵件。 Sun公司制定了一套API,它封裝了郵件通訊的

kettle 郵件附件

            新建一個job,主要用到的元件有兩個,如下圖: 首先點選下圖的檔案,選擇你要做為郵件附件的檔案。選完後會在前輩的檔案、目錄中顯示。然後點選增加,會下面檔案列表中顯示已經新增的檔案(塗黃色的部分)  

C# 隱藏一個窗體開啟另一個窗體,使用Show()和Hide()方法

新建兩個窗體Form1 和Form2 ; Form1 中的按鈕 的單擊事件方法裡面的程式碼; Form2 fm2= new Form2(this); fm2.Show(); this.Hide(); Form2 窗體裡面的程式碼; Form1 fm1 = new Fo

C++讓一個類不能繼承

學過一點java基礎的人都知道,在java中讓一個類不能被繼承,直接在類前面用final關鍵字修飾就好。但是在C++中如何實現呢? 一般來說有兩種思路。 1、將建構函式申明為私有的,然後定義一個靜態函式來建立物件,這種很多人都可以想到。但靈活性不好,每次要構

C# PictureBox 載入圖片無法刪除解決方法

//顯示圖片 private void button1_Click(object sender, EventArgs e) {     pictureBox1.Image = GetFile(@"f:\demo.gif"); } //不顯示並釋放資源 private void button2_Click(o

C# QQ郵箱郵件

前提準備: QQ郵箱開通 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 使用STMP服務開通時給的授權密碼。 引數配置:   <emailsmtp>smtp.qq.com</emailsmtp>   <em

c# 坑人的郵件組件

郵件 端口 format rom .com smtp system add ssl加密 System.Net.Mail 在服務器25端口被封禁的情況下,無法使用其它諸如SSL 465端口發送。用過時的System.Web.Mail卻可以。是微軟更新速度太快呢,還是標準不一致

C#實現.Net對郵件進行DKIM簽名和驗證,支援附件,傳送郵件簽名直接投遞到對方伺服器(無需己方郵件伺服器)

專案地址 github.com/xiangyuecn/… 主要支援 對郵件進行DKIM簽名,支援帶附件 對整個郵件內容(.eml檔案)的DKIM簽名進行驗證 對MailMessage、SmtpClient進行了一次封裝,傳送郵件簡單易用,進行DKIM簽名後直接投遞到對方伺服器(無需己方郵件

c++刪除迭代器指向的元素,迭代器指向的刪除元素後面的元素

1.  C++向容器中插入和刪除元素的時候,迭代器會失效,下面是正確刪除容器元素的做法 void StatsServer::removeExpiredWorkers() { size_t expiredWorkerCount = 0; size_t expiredU

C#使用 MailKit獲取郵件附件(QQ郵箱/163網易郵箱)

背景介紹:VS2017 | .net core | C# |  .netframwork 4.0-----------------------------------------------------------------------這東西本來沒打算記的,主要是連線郵件伺

System.Web.Mail.MailMessage c#郵件 授權碼

微軟自帶的System.Net.Mail不支援QQ郵箱這樣的加密的SSL,授權碼, 所以我們就用System.Web.Mail這個比較舊的類。 登陸密碼要注意:一般賬號,要用授權碼(下面會說明設定);企業賬號用登入密碼,程式碼如下:      //{        

C#使用MailMessage類傳送郵件(QQ郵箱或者163郵箱)的小細節

一年前,我用程式碼操作QQ郵箱傳送郵件,直接失敗,但是QQ郵箱檢測到了我的這種行為,並且很友好的提示了一下,內容忘記了,意思記得,大概是您的QQ郵箱沒有開啟相關服務,不能進行...操作。 如上圖所示,就是這個沒有被勾選,那麼當時我設定選中後,儲存,就能用這個QQ郵箱進

C# 163郵箱附件以及郵件信息

標題 message edi 服務器端 pan 服務器密碼 cli div nat public static bool SendEmail(EmailInfo mailInfo) { try