2016-06-24 69 views
2

嘗試使用MailKit和MimeKit發送電子郵件時,有沒有辦法收集SMTP輸出?使用Mailkit和Mimekit收集SMTP服務器

ps:我試圖將我的電子郵件代碼從Easymail遷移到Mimekit和Mailkit,如果這是一個相當基本的查詢,我很抱歉。

回答

2

這事實上是在FAQ這一點,但爲了方便,我會把它貼在這裏:

所有MailKit的客戶端實現的有一個構造函數,需要一個漂亮的IProtocolLogger接口,用於記錄客戶/服務器通信。開箱即用,您可以使用便利的ProtocolLogger類。這裏有一些如何使用它的例子:

// log to a file called 'smtp.log' 
var client = new SmtpClient (new ProtocolLogger ("smtp.log")); 

// log to standard output (i.e. the console) 
var client = new SmtpClient (new ProtocolLogger (Console.OpenStandardOutput())); 
+0

謝謝!我正在開發一個將郵件發送給1000人的應用程序。我將需要記錄每個發送的結果。我只需要知道它是否被髮送,或者是否使用異常代碼失敗。 是否有一個簡單的方法來同步收集SMTP服務器響應代碼?我注意到方法void Data(FormatOptions選項,MimeMessage消息,CancellationToken cancellationToken,ITransferProgress進度)確實有 事件被觸發\t OnMessageSent(new MessageSentEventArgs(message,response.Response));.每次發送後,我有沒有辦法收集這些信息? – Krylor

+0

是的。它在每封郵件發送後發出。 – jstedfast

+0

謝謝你! – Krylor