2013-02-08 3 views
0

У меня есть следующий код, который не работает:Как отправить почту с помощью SmtpClient в .net?

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(); 
} 

Я получаю следующее сообщение об ошибке:

Mailbox unavailable. The server response was: You must give your username and password to send mail through this service

Вы можете видеть, что я прохожу имя пользователя и пароль. Почему я все еще получаю эту проблему?

+0

это специфично для каждого сервера SMTP. Вам нужно будет проверить настройки своего SMTP для своего собственного интернет-провайдера. –

+0

Какое обслуживание электронной почты вы используете? – Arran

ответ

2

здесь я использую пример использования 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); 
Смежные вопросы