正在尝试使用SMTP类(C#)发送电子邮件
我正在尝试使用C#SmtpClient类发送电子邮件。“catch”块在尝试“发送”消息后执行。当我查看异常时,InnerException显示“无法连接到远程服务器”,消息显示“发送邮件失败”。状态代码为“一般故障” 我是否缺少某些凭证?我是否需要为SmtpClient或MailMessage的实例设置更多字段 代码如下:正在尝试使用SMTP类(C#)发送电子邮件,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,我正在尝试使用C#SmtpClient类发送电子邮件。“catch”块在尝试“发送”消息后执行。当我查看异常时,InnerException显示“无法连接到远程服务器”,消息显示“发送邮件失败”。状态代码为“一般故障” 我是否缺少某些凭证?我是否需要为SmtpClient或MailMessage的实例设置更多字段 代码如下: private void sendEmail(string recepientEmailAddress) { string subjectEmail =
private void sendEmail(string recepientEmailAddress) {
string subjectEmail = "Subject Email";
MailAddress to = new MailAddress("example@email.com");
MailAddress from = new MailAddress("example@example.com");
MailMessage message = new MailMessage(from, to);
message.Subject = subjectEmail;
message.IsBodyHtml = true;
message.Body = "Body example";
try
{
SmtpClient sc = new SmtpClient(ConfigurationManager.AppSettings["MailServer"].ToString());
sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.EnableSsl = true;
sc.UseDefaultCredentials = true;
sc.Send(message);
}
catch (Exception e)
{
Helpers.ErrorLogger.ProcessError(e.Message, e.StackTrace, "RegistrationController", "SendEmail");
}
}
添加端口(gmail:587)
正在添加主机(smtp.gmail.com)
如果不起作用,请尝试添加用户名和密码
从
sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
到
添加端口(gmail:587)
正在添加主机(smtp.gmail.com)
如果不起作用,请尝试添加用户名和密码
从
sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
到
这段代码应该可以用,我刚刚测试过
这段代码应该可以用,我刚刚测试过。似乎
AppSettings
中指定的MailServer
无效。缺少用户名和密码,您尝试发送的电子邮件是哪封from@AsafShazar如何将用户和密码附加到我发送的电子邮件?谢谢。似乎MailServer
speAppSettings
中指定的无效。缺少您尝试发送的电子邮件的用户名和密码from@AsafShazar如何将用户和密码附加到我发送的电子邮件?谢谢。感谢您的回复。我发送的“发件人”电子邮件是outlook。“sc.Host=smtp.outlook.com”也是如此改为工作?@tonyleMill你从Outlook发送是什么意思?除非你的网站托管在Outlook.com上,否则不要从Outlook.com发送。@mason我只是想了解为什么主机和端口上有“gmail”。你试图在你的公司发送电子邮件?@tonyleMill无论如何Outlook连接到邮箱服务器/Cas服务器(如果您使用exchange),在gmail中,因为您需要用户和密码的身份验证,因此我添加了用户和密码,如果您在公司中使用邮件(如exchange服务器),您可以做2件事1)使用windows集成,在邮件中使用用户认证2)将NetworkCredential与windows用户的用户名和密码一起使用我最终以另一种方式使其工作,但感谢您的帮助。感谢您的回复。我发送的“发件人”电子邮件是outlook。“sc.Host=smtp.outlook.com”也是如此改为工作?@tonyleMill你从Outlook发送是什么意思?除非你的网站托管在Outlook.com上,否则不要从Outlook.com发送。@mason我只是想了解为什么主机和端口上有“gmail”。你试图在你的公司发送电子邮件?@tonyleMill无论如何Outlook连接到邮箱服务器/Cas服务器(如果您使用exchange),在gmail中,因为您需要用户和密码的身份验证,因此我添加了用户和密码,如果您在公司中使用邮件(如exchange服务器),您可以做2件事1)使用windows集成,在邮件中使用用户认证2)将NetworkCredential与您的windows用户的用户名和密码一起使用我最终以另一种方式使其工作,但感谢您的帮助。
sc.Credentials = new System.Net.NetworkCredential("username","password")
public static bool Send()
{
try
{
var fromAddress = new MailAddress("xyz@example.com");
var toAddress = new MailAddress("xyziahd@example.com");
const string subject = "subjects";
const string userName = "serverCredentail";
const string Password = "serverpassword";
const string body = "Body";
var smtp = new SmtpClient
{
Host = "servernameexample.com",
Port = 25,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(userName, Password)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
}
catch(Exception ex)
{
return false;
}
return true;
}