【发布时间】:2015-12-31 09:21:24
【问题描述】:
当我尝试在 C# 中使用 SMTP 和 MailMessage 时遇到了一些麻烦:
这是我第一次使用 SMTP 和 MailMessage,所以,有些行可能是错误的,但这是我迄今为止所做的我需要你们的帮助。
我已经搜索了很多关于它的东西,也在 stackoverflow 上搜索了很多东西,但到目前为止,我想不出我做错了什么。当我尝试运行 (模式调试和正常运行) 我的 Application Console (只是在控制台上测试,非常简单) 它给了我这个error
SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。了解更多信息,请访问
我在Visual Studio 2013上理解了下面的错误,问题是我不太了解Smtp类的属性和方法,MailMessage,然后它让我不明白我在代码上做错了什么,
下面是我的控制台应用程序上的class Email
/// <summary>
/// Email Server
/// </summary>
protected SmtpClient SmtpClient { get; set; }
/// <summary>
/// Message Content
/// </summary>
protected MailMessage MailMessage { get; set; }
#endregion
/// <summary>
/// Método enviar e-mail
/// </summary>
/// <param name="smtp"></param>
/// <param name="from"></param>
/// <param name="to"></param>
/// <param name="subject"></param>
/// <param name="body"></param>
/// <param name="priority"></param>
public string EnviarEmail(string smtp, string from, string to, string subject, string body, bool priority)
{
try
{
SmtpClient = new SmtpClient();
SmtpClient.Host = "smtp.gmail.com";
SmtpClient.Port = 587;
SmtpClient.EnableSsl = true;
SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
SmtpClient.Credentials = new NetworkCredential("raffa.ferreiira@gmail.com","mypassword");
SmtpClient.UseDefaultCredentials = true;
MailMessage = new MailMessage();
MailMessage.From = new MailAddress(from, "Raffa Ferreira", Encoding.UTF8);
MailMessage.To.Add(new MailAddress(to, "Fulano teste", Encoding.UTF8));
MailMessage.Subject = subject;
MailMessage.Body = body;
MailMessage.BodyEncoding = Encoding.UTF8;
MailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");
if (priority == false)
{
MailMessage.Priority = MailPriority.Normal;
}
else
{
MailMessage.Priority = MailPriority.High;
}
SmtpClient.Send(MailMessage);
}
catch(SmtpFailedRecipientException ex)
{
Console.WriteLine("Mensagem : {0} " + ex.Message);
}
catch(SmtpException ex)
{
Console.WriteLine("Mensagem SMPT Fail : {0} " + ex.Message);
}
catch(Exception ex)
{
Console.WriteLine("Mensagem Exception : {0} " + ex.Message);
}
string mensagem = "E-mail enviado";
return mensagem;
}
在
Program上,我将其称为class Email,并传递一些参数:
class Program
{
static void Main(string[] args)
{
string smtp = "smtp.live.com";
string from = "raffa.ferreiira@gmail.com";
string to = "raffa.ferreiira@live.com";
string subject = "COMMUNICATE";
string body = "Hello, this is a text of a test message for you"
Email email1 = new Email();
email1.EnviarEmail(smtp, from, to, subject, body, true);
}
}
我只是在stackoverflow 上四处询问,因为我无法再搜索我的一些疑问的答案,所以我需要帮助。因为这是我第一次使用 SMTP 和 MailMessage....!
为什么会出现这个错误?代码有问题吗?它是什么?
【问题讨论】:
标签: c# email smtp smtpclient mailmessage