快速、 方便: 发送电子邮件在.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 = true;

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

SmtpClient 客户端 = 新增功能 SmtpClient("smtp.gmail.com");
客户端。EnableSsl = true;
客户端。UseDefaultCredentials = false;
客户端。凭据 = loginInfo;
客户端。端口 = 587;
客户端。EnableSsl = true;
客户端。发送(味精);

我放慢的几个关键位和其他意见 / 备注:

  • 第一行中创建 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

    答复

离开回复 杰夫 取消回复

您的电子邮件地址不会被公开. 必需的地方已做标记 *