首页 > C# > 通过 Gmail 在 .NET 中发送电子邮件

通过 Gmail 在 .NET 中发送电子邮件

上一篇 下一篇

我没有依靠我的主机发送电子邮件,而是考虑使用我的Gmail帐户发送电子邮件。这些电子邮件是发给我在节目中演奏的乐队的个性化电子邮件。

有可能做到吗?

分割线

网友回答:

上面的答案不起作用。您必须进行设置,否则它将返回“客户端未经过身份验证”错误。此外,设置超时总是一个好主意。DeliveryMethod = SmtpDeliveryMethod.Network

修订后的代码:

using System.Net.Mail;
using System.Net;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@yahoo.com", "To Name");
const string fromPassword = "password";
const string subject = "test";
const string body = "Hey now!!";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
    Timeout = 20000
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

分割线

网友回答:

请务必使用 ,而不是已弃用的 。使用SSL是一堆混乱的黑客扩展。System.Net.MailSystem.Web.MailSystem.Web.Mail

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

此外,请转到 Google 帐号>安全性页面,查看登录 Google >两步验证设置。

  • 如果已启用,则必须生成允许 .NET 绕过两步验证的密码。为此,请点击登录 Google >应用密码,选择应用 = 邮件和设备 = Windows 计算机,最后生成密码。在常量中使用生成的密码,而不是标准 Gmail 密码。fromPassword
  • 如果禁用,则必须打开安全性较低的应用程序访问,不建议这样做!因此,最好启用两步验证。

分割线

网友回答:

编辑 2022
自 30 年 2022 月 <> 日起,Google 将不再支持使用要求您仅使用用户名和密码登录 Google 帐号的第三方应用或设备。
但是您仍然可以通过您的Gmail帐户发送电子邮件。

  1. 转到 https://myaccount.google.com/security 并打开两步验证。如果需要,请通过电话确认您的帐户。
  2. 单击“应用密码”,就在“两步验证”勾号下方。
  3. 为邮件应用程序请求新密码。

现在只需使用此密码而不是您帐户的原始密码!

public static void SendMail2Step(string SMTPServer, int SMTP_Port, string From, string Password, string To, string Subject, string Body, string[] FileNames) {            
            var smtpClient = new SmtpClient(SMTPServer, SMTP_Port) {
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                EnableSsl = true
            };                
            smtpClient.Credentials = new NetworkCredential(From, Password); //Use the new password, generated from google!
            var message = new System.Net.Mail.MailMessage(new System.Net.Mail.MailAddress(From, "SendMail2Step"), new System.Net.Mail.MailAddress(To, To));
            smtpClient.Send(message);
    }

像这样使用:

SendMail2Step("smtp.gmail.com", 587, "youraccount@gmail.com",
          "yjkjcipfdfkytgqv",//This will be generated by google, copy it here.
          "recipient@barcodes.bg", "test message subject", "Test message body ...", null);

要使其他答案“从服务器”工作,请先为 Gmail 帐户中安全性较低的应用启用访问权限这将在 30 年 2022 月 <> 日弃用

看起来最近谷歌改变了它的安全策略。评分最高的答案不再有效,直到您按照以下说明更改帐户设置: https://support.google.com/accounts/answer/6010255?hl=en-GB
截至 2016 年 <> 月,Google 再次更改了设置位置!

模板简介:该模板名称为【通过 Gmail 在 .NET 中发送电子邮件】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 220次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-01
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信公众平台 微信模板 html5 响应式 微信图片 自适应 企业网站 微信文章 单页式简历模板 微信素材
您可能会喜欢的其他模板