2010-06-28 6 views
1

Можно создать дубликат:
Sending Email in .NET Through GmailОтправка Gmail через C#

У меня есть так много проблем с отправкой почты через C#. Я пытался навсегда работать в нескольких приложениях, и он никогда не работает.

Может кто-нибудь ПОЖАЛУЙСТА, напишите какой-нибудь пример кода, который четко указывает, куда отправитель и получатель отправляется, и предлагает помощь с smtp sever dat или что-то еще !!

+6

Престол [Отправка электронной почты в .NET через Gmail] (http://stackoverflow.com/questions/32260/sending-email-in-net-through -gmail). Это поможет, если вы объясните, что «это никогда не работает» –

ответ

2

Что-то вроде этого:

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("[email protected]", "[email protected]", "subject", "body"); 
System.Net.Mail.SmtpClient emailClient = new System.Net.Mail.SmtpClient("smtp.gmail.com", 465); 
emailClient.Credentials = new System.Net.NetworkCredential("yourgmailusername", "yourpassword"); 
emailClient.Send(message); 
2

кода, который я написал некоторое время назад для отправки электронной почты через веб-форму:

//using System.Net.Mail; 

    MailMessage msg = new MailMessage(); 

    msg.To.Add(RECIPIENT_ADDRESS); //note that you can add arbitrarily many recipient addresses 


    msg.From = new MailAddress(SENDER_ADDRESS, RECIPIENT_NAME, System.Text.Encoding.UTF8); 
    msg.Subject = SUBJECT 
    msg.SubjectEncoding = System.Text.Encoding.UTF8; 
    msg.Body = //SOME String 

    msg.BodyEncoding = System.Text.Encoding.UTF8; 
    msg.IsBodyHtml = false; 

    SmtpClient client = new SmtpClient();  

    client.Credentials = new System.Net.NetworkCredential(ADDRESS, PASSWORD); 
    client.Port = 587; 
    client.Host = "smtp.gmail.com"; 
    client.EnableSsl = true; 

    try 
    { 
     client.Send(msg); 
    } 
    catch (SmtpException ex) 
    { 
     throw; //or handle here 
    } 
0

Я сделал этот класс, чтобы отправить через мою GMail аккаунт, когда в моем dev и использовать SMTP в моем Web.Config при производстве. По существу то же самое, что и noblethrasher с некоторым комфортом развертывания.

Существует флаг для "mailConfigTest"

/// <summary> 
/// Send Mail to using gmail in test, SMTP in production 
/// </summary> 
public class MailGen 
{ 
    bool _isTest = false; 
    public MailGen() 
    { 
     _isTest = (WebConfigurationManager.AppSettings["mailConfigTest"] == "true"); 
    } 

    public void SendMessage(string toAddy, string fromAddy, string subject, string body) 
    { 
     string gmailUser = WebConfigurationManager.AppSettings["gmailUser"]; 
     string gmailPass = WebConfigurationManager.AppSettings["gmailPass"]; 
     string gmailAddy = WebConfigurationManager.AppSettings["gmailAddy"]; 


     NetworkCredential loginInfo = new NetworkCredential(gmailUser, gmailPass); 
     MailMessage msg = new MailMessage(); 
     SmtpClient client = null; 

     if (_isTest) fromAddy = gmailAddy; 

     msg.From = new MailAddress(fromAddy); 
     msg.To.Add(new MailAddress(toAddy)); 
     msg.Subject = subject; 
     msg.Body = body; 
     msg.IsBodyHtml = true; 
     if (_isTest) 
     { 
      client = new SmtpClient("smtp.gmail.com", 587); 
      client.EnableSsl = true; 
      client.UseDefaultCredentials = false; 
      client.Credentials = loginInfo; 
     } 
     else 
     { 
      client = new SmtpClient(WebConfigurationManager.AppSettings["smtpServer"]); 
     } 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.Send(msg); 

    } 
} 
Смежные вопросы