Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# 无法使用ASP.NET发送电子邮件_C#_Asp.net_Email_Smtp_Smtpclient - Fatal编程技术网

C# 无法使用ASP.NET发送电子邮件

C# 无法使用ASP.NET发送电子邮件,c#,asp.net,email,smtp,smtpclient,C#,Asp.net,Email,Smtp,Smtpclient,我的项目需要发送电子邮件,但我无法发送。我不知道为什么。上个月我可以寄,但今天不行 string url = Request.Url.AbsoluteUri; string hyperlink = "<a href='" + url + "'>" + url + "</a>"; NetworkCredential loginInfo = new NetworkCredential("***examplemail***", "myPassword"); MailMessag

我的项目需要发送电子邮件,但我无法发送。我不知道为什么。上个月我可以寄,但今天不行

string url = Request.Url.AbsoluteUri;
string hyperlink = "<a href='" + url + "'>" + url + "</a>";
NetworkCredential loginInfo = new NetworkCredential("***examplemail***", "myPassword");
MailMessage msg = new MailMessage();
msg.From = new MailAddress("***examplemail***");
msg.To.Add(new MailAddress("***ToEmail***"));
msg.Bcc.Add(new MailAddress("***examplemail***"));
msg.Subject = "TEST";
msg.Body = "Hi, TEST Send E-mail";
msg.IsBodyHtml = false;
SmtpClient client = new SmtpClient("smtp.gmail.com", 995); // tried 25 587 and 995
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = loginInfo;
client.Send(msg);
string url=Request.url.AbsoluteUri;
字符串超链接=”;
NetworkCredential loginInfo=新的NetworkCredential(“***示例邮件***”,“我的密码”);
MailMessage msg=新的MailMessage();
msg.From=新邮件地址(“***示例邮件***”);
msg.To.Add(新邮件地址(“***ToEmail***”);
msg.Bcc.Add(新邮件地址(“***示例邮件***”);
msg.Subject=“测试”;
msg.Body=“嗨,测试发送电子邮件”;
msg.IsBodyHtml=false;
SmtpClient=新的SmtpClient(“smtp.gmail.com”,995);//试过25587和995
client.enablesl=true;
client.UseDefaultCredentials=false;
client.Credentials=loginInfo;
client.Send(msg);

**它没有任何错误,但我也没有发送

我不会在这里使用端口号

SmtpClient client = new SmtpClient("smtp.gmail.com", 995); // tried 25 587 and 995
这样它就发出了声音。我试过了,成功了。我是说它应该看起来像

SmtpClient client = new SmtpClient("smtp.gmail.com");
如果在编写代码时检查SmtpClient的构造函数,您将看到它有一个重载。

尝试以下操作:

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

namespace consSendMail
{
    class Program
    {
        static void Main(string[] args)
        {
            SmtpClient smtpClient = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                Credentials = new NetworkCredential("yourmail", "yourpassword")
            };

            var mailMessage = new MailMessage();
            mailMessage.Subject = "Subject";
            mailMessage.From = new MailAddress("yourmail", "yourname");
            mailMessage.IsBodyHtml = true;
            mailMessage.Body = "your message";            
            mailMessage.To.Add( new MailAddress("destinationemail") );

            smtpClient.Send(mailMessage);

            mailMessage.Dispose();
            smtpClient.Dispose();
        }
    }
}

如果你尝试995,它会给你一个错误。检查你的
catch
块。你能用try{}catch{}
client.Send(msg)来包装这段代码吗并报告异常情况。。可能发生了异常,但它刚刚被抛出..我收到了“发送邮件失败”。我刚刚尝试了端口25和587,但收到了相同的错误。下面是另一个类似的问题,可能会对您有所帮助。
SmtpClient
MailMessage
都需要在
中使用
块。我已经对此进行了测试。它起作用了。现在我已经编辑了这个来完成示例程序。它们仍然应该在
中使用
块,以确保及时清理它们,即使是在出现异常的情况下。