2009-12-24 2 views
0

У меня есть веб-приложение, которое я установил для автоматической отправки электронной почты с помощью учетной записи gmail с помощью настроек MailHelper.cs и web.config. моя заявка работала в течение 10 дней, и теперь она дает мне ошибку и останавливается во время отправки письма. Я обрабатываю эту ошибку, это «Ошибка отправки почты». и внутрипартийное исключение «Операция с сокетом была предпринята попытке недоступного хоста 216.239.59.109:587» вот код:Проблема с электронной почтой при использовании MailHelper.cs

<mailSettings> 
    <smtp from="[email protected]"> 
    <network host="smtp.gmail.com" 
      port="587" 
      userName="[email protected]" 
      password="mypass"/> 
    </smtp> 
</mailSettings> 

using System.Net.Mail; 

public class MailHelper 
{ 
    /// <summary> 
    /// Sends an mail message 
    /// </summary> 
    /// <param name="from">Sender address</param> 
    /// <param name="to">Recepient address</param> 
    /// <param name="bcc">Bcc recepient</param> 
    /// <param name="cc">Cc recepient</param> 
    /// <param name="subject">Subject of mail message</param> 
    /// <param name="body">Body of mail message</param> 
    public static void SendMailMessage(string from, string to, string bcc, string cc, string subject, string body) 
    { 
     // Instantiate a new instance of MailMessage 
     MailMessage mMailMessage = new MailMessage(); 

     // Set the sender address of the mail message 
     mMailMessage.From = new MailAddress(from); 
     // Set the recepient address of the mail message 
     mMailMessage.To.Add(new MailAddress(to)); 
     // Check if the bcc value is null or an empty string 
     if ((bcc != null) && (bcc != string.Empty)) 
     { 
     // Set the Bcc address of the mail message 
     mMailMessage.Bcc.Add(new MailAddress(bcc)); 
     } 

     // Check if the cc value is null or an empty value 
     if ((cc != null) && (cc != string.Empty)) 
     { 
     // Set the CC address of the mail message 
     mMailMessage.CC.Add(new MailAddress(cc)); 
     }  // Set the subject of the mail message 
     mMailMessage.Subject = subject; 
     // Set the body of the mail message 
     mMailMessage.Body = body; 
     // Set the format of the mail message body as HTML 
     mMailMessage.IsBodyHtml = true; 
     // Set the priority of the mail message to normal 
     mMailMessage.Priority = MailPriority.Normal; 

     // Instantiate a new instance of SmtpClient 
      SmtpClient mSmtpClient = new SmtpClient(); 
      mSmtpClient.Host = "smtp.gmail.com"; 
      mSmtpClient.Port = 587; 
      mSmtpClient.EnableSsl = true; 

     // Send the mail message 
     mSmtpClient.Send(mMailMessage); 
    } 
} 
+0

Я возвращаюсь к этому вопросу снова и снова, когда мне нужен MailHelper для новых проектов. Вопрос, который более полезен, чем его ответ. –

ответ

0

Как указано в редакции casperOne, это не проблема библиотеки, а проблема сервера хоста/gMail.

Одной из сторон уравнения является предотвращение связи. Я бы указал пальцем на хост, а не на gMail.

Сколько писем вы могли отправить, прежде чем это начало действовать? Кто ваш хозяин?

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

+0

Да, я так думаю, но у меня нет ограничений на исходящую почту. Мне кажется, я должен поговорить с моим хоспером. – kamiar3001

+0

Спасибо, это правильный ответ. – kamiar3001

0

Я настоятельно рекомендую установить Elmah (или включение полной информации исключения в конфигурационном файле), чтобы вы могли зафиксировать исключение в своем приложении ASP.NET. Как только вы это сделаете, вы сможете предоставить больше информации об исключении, которое затем можно реплицировать здесь.

Исключение (и я предполагаю, что свойство InnerException, что более важно здесь), вероятно, расскажет вам все, что вам (или нам) нужно.


Основываясь на комментарий, казалось бы, что вы возникли проблемы на хосте с позволяя достичь этого адреса (или конечная точка отклоняет вас). Это скорее проблема с конфигурацией/хостом, чем проблема с библиотекой.

Можете ли вы заставить его работать из консольного приложения на вашем компьютере?

+0

Внутреннее исключение: Операция сокета была предпринята для недоступного хоста. 216.239.59.109:587 – kamiar3001

+0

Да, я могу запустить его легко с моей локальной машины, но когда я опубликовал его на своем хост-сервере, он дал мне ошибку, подобную этой. – kamiar3001