Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在本地计算机上使用gmail帐户发送电子邮件_C#_Asp.net_Smtp - Fatal编程技术网

C# 在本地计算机上使用gmail帐户发送电子邮件

C# 在本地计算机上使用gmail帐户发送电子邮件,c#,asp.net,smtp,C#,Asp.net,Smtp,我在asp.net应用程序中使用gmail发送电子邮件。若我在服务器上发送电子邮件,电子邮件工作正常,但若我尝试在本地计算机上发送电子邮件,则会出现错误。我把断点放在代码中,当调用send方法时,它会显示一个错误框,标题是“Smtp异常未被用户代码处理”,详细地说是“Faliur正在发送邮件” 如果我在浏览器上继续,它将显示包含以下详细信息的错误页面: 远程主机描述已强制关闭现有连接:在执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详

我在asp.net应用程序中使用gmail发送电子邮件。若我在服务器上发送电子邮件,电子邮件工作正常,但若我尝试在本地计算机上发送电子邮件,则会出现错误。我把断点放在代码中,当调用send方法时,它会显示一个错误框,标题是“Smtp异常未被用户代码处理”,详细地说是“Faliur正在发送邮件”

如果我在浏览器上继续,它将显示包含以下详细信息的错误页面:

远程主机描述已强制关闭现有连接:在执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.Net.Sockets.SocketException:远程主机强制关闭了现有连接

下面是我的代码,请引导我

谢谢

  protected void btnConfirm_Click(object sender, EventArgs e)
{
    string _Message = GetAdminEmailMessage();        

    MailMessage message = new MailMessage();
    SmtpClient smtp = new SmtpClient();
    NetworkCredential mailAuthentication = new NetworkCredential("myaccount@gmail.com", "mypassword");
    message.To.Add(new MailAddress("mc5678@hotmail.com"));
    message.From = new MailAddress("myaccount@gmail.com");
    message.IsBodyHtml = true;
    message.Subject = "Local test email";
    message.Body = _Message;
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Port = 587;
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtp.Host = "smtp.gmail.com";
    smtp.Credentials = mailAuthentication;
    smtp.Send(message);

}

错误代码0x800CCC0E表示端口已被阻止:

试试telnet smtp.gmail.com 587-你能连接吗

如果您的端口未被阻止且您的凭据正确,则此问题的已接受答案中的代码应该有效


港口被封锁了?或者你的IP被gmail屏蔽了?在进一步排除故障之前,我会检查我是否可以从Outlook或类似设备连接相同的设置。如果我尝试使用Outlook连接到gmail,并且出现以下错误,很抱歉我无法获得它,请稍后再试。与服务器的连接失败。帐户:'smtp.gmail.com',服务器:'smtp.gmail.com',协议:POP3,端口:110,安全(SSL):否,套接字错误:10060,错误号:0x800CCC0Ehearm我在命令propt上提示telnet smtp.gmail.com 587,它显示“220 mx.google.com ESMTP s9sn421715wby.4”很抱歉,我不知道telnet是否意味着它已连接?如果端口被blicked锁定,我可以做些什么来解锁端口或任何解决方案?
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();
        }
    }
}