一尘不染

使用C#通过Gmail SMTP服务器发送电子邮件

c#

由于某些原因,“
通过Gmail在.NET中发送电子邮件 ”对我来说都无法使用被接受的答案。他们为什么不工作?

更新:我已经尝试了另一个问题中的所有答案(已接受和其他),但是没有一个起作用。

我只想知道它是否对其他任何人都有效,否则Google可能已经更改了某些内容(以前发生过)。

当我尝试使用的代码段时SmtpDeliveryMethod.Network,我很快在Send(message)上收到SmtpException。消息是

SMTP服务器需要安全连接,或者客户端未通过身份验证。

服务器响应为:

5.5.1需要身份验证。进一步了解”。

更新:

这是我很久以前问过的一个问题,可接受的答案是我在不同项目上使用过很多次的代码。

我已经采用了本文和其他EmailSender项目中的一些想法,以在Codeplex创建一个EmailSender项目。它旨在实现可测试性,并支持GoDaddy和Gmail等我最喜欢的SMTP服务。


阅读 479

收藏
2020-05-19

共1个答案

一尘不染

CVertex,请确保检查您的代码,如果没有显示任何内容,请将其发布。我只是在正在使用的测试ASP.NET站点上启用了它,并且它起作用了。

实际上,在某些时候我的代码有问题。我没有发现它,直到在控制台程序上有了一个简单的版本,然后看到它正在工作(您担心的Gmail方面没有任何变化)。下面的代码就像您引用的示例一样工作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new SmtpClient("smtp.gmail.com", 587)
            {
                Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"),
                EnableSsl = true
            };
            client.Send("myusername@gmail.com", "myusername@gmail.com", "test", "testbody");
            Console.WriteLine("Sent");
            Console.ReadLine();
        }
    }
}

我还结合使用了web.config,http://msdn.microsoft.com/en-
us/library/w355a94k.aspx和代码(因为EnableSsl配置文件:()中没有匹配项)来使它工作。

2020-05-19