快速而方便地: 在.NET C# 中使用 Gmail SMTP 伺服器發送郵件

這不完全是一個新的主題, 但當我需要這麼做, 我發現很多的"為什麼不會這項工作對我來說"並沒有太多直接的答案. 我希望有人能找到這有用.

下面這段代碼將使用發送電子郵件我自己的 gmail 帳戶做它, 包括附件。:

使用 System.Net.Mail;
使用 System.Net;

NetworkCredential loginInfo = 新增功能 NetworkCredential("[我的 Gmail ID]", "[我的 Gmail 密碼]");
MailMessage msg = 新增功能 MailMessage();
味精。從 = 新增功能 郵寄地址("[M Gmail Id]@gmail.com");
味精。To.Add(新增功能 郵寄地址("paul.galvin@arcovis.com"));
味精。主題 = "測試 infopath 開發主體";
味精。身體 = "<html><正文><強>一個強烈的資訊。</強></正文></html>";
味精。IsBodyHtml = 真正的;

foreach (字串 恰好 在中 NIPFD。GetAttachmentNamesAndLocations())
{
    味精。Attachments.Add(新增功能 附件(恰好));
} // 添加附件.

SmtpClient 用戶端 = 新增功能 SmtpClient("smtp.gmail.com");
用戶端。EnableSsl = 真正的;
用戶端。使用 = false;
用戶端。憑據 = loginInfo;
用戶端。埠 = 587;
用戶端。EnableSsl = 真正的;
用戶端。發送(味精);

我放慢的幾個關鍵位和其他意見 / 備註:

  • 第一行中創建 loginInfo 物件需要使用 ID 被剝奪了的 gmail "@gmail.com”. 所以, 如果我的 gmail 電子郵件地址 "sharepoint@gmail.com"和我的密碼是"xyzzy"然後線看起來就像:

NetworkCredential loginInfo = 新增功能 NetworkCredential("sharepoint", "xyzzy");

  • 我的 gmail 帳戶設置為使用 SSL,這不是問題.
  • 還有一些相互矛盾的資訊,在那裡上要使用什麼埠. 我使用埠 587 和它對我來說能正常工作.
  • 以我為例, 我也需要發送附件. NIPFD 物件具有一個方法,知道我的附件在哪裡. 它返回一個完全路徑 (例如:. "c:\"tempattachment1.jpg. 在我的測試, 我有兩個附件和他們都能正常工作.

我使用 visual studio 2008 若要編寫此代碼.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

Technorati 標籤: ,,,

2 上“的想法快速而方便地: 在.NET C# 中使用 Gmail SMTP 伺服器發送郵件

  1. 傑夫

    PowerShell 團隊博客最近有一個類似的職位發現寶貴的伺服器管理員. Visual Studio 是很大,但許多我的同齡人不是開發人員和不具有購買許可證. PowerShell 的感覺更像是在命令列和是説明它們更容易. 只是一個建議為外面任何管理員的.

    最好的,
    傑夫 (www.spjeff.com / @spjeff)

    自動發送電子郵件,發送 MailMessage

    http://blogs.msdn.com/powershell/archive/2009/10/30/sending-automated-emails-with-send-mailmessage-convertto-html-and-the-powershellpack-s-taskscheduler-module.aspx

    答覆

離開一個答覆 傑夫 取消回复

您的電子郵件地址不會被公開. 必需的地方已做標記 *