简体   繁体   English

如何在.net中使用SmtpClient发送邮件?

[英]How to send mail using SmtpClient in .net?

I have the following code which is not working: 我有以下代码不起作用:

public static void SendMail(string content, string title, List<string> address)
{
   SmtpClient client = new SmtpClient(Server,Port);
   client.Port = Port;
   client.Host = Server;
   client.EnableSsl = false;
   client.Timeout = 10000;
   client.DeliveryMethod = SmtpDeliveryMethod.Network;
   client.UseDefaultCredentials = false;
   client.Credentials = new System.Net.NetworkCredential(Username, Password);

   foreach(string to in address)
   {
      MailMessage mm = new MailMessage(From, to, title, content);
      mm.BodyEncoding = UTF8Encoding.UTF8;
      mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

      client.Send(mm);
   }
   client.Dispose();
}

I am getting the following error: 我收到以下错误:

Mailbox unavailable. 信箱不可用。 The server response was: You must give your username and password to send mail through this service 服务器响应是:您必须提供用户名和密码才能通过此服务发送邮件

You can see that I am passing a username and password. 您可以看到我正在传递用户名和密码。 Why am I still getting this issue? 为什么我仍然遇到这个问题?

here i am using example of using gmail server 这里我使用的是使用gmail服务器的例子

MailMessage mail = new MailMessage();
        mail.To.Add(textBox1.Text);

        mail.From = new MailAddress("Yourgmailid");
        mail.Subject = "Email using Gmail";

        string Body = "Hi, this mail is to test sending mail" +
                      "using Gmail in ASP.NET";
        mail.Body = Body;

        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com"; 
        smtp.Credentials = new System.Net.NetworkCredential
             ("Yourgmailid, "Password");

        smtp.EnableSsl = true;
        smtp.Send(mail);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM