2010-08-16 4 views
1

Проверка работоспособности электронной почты, пожалуйста :-) Что-нибудь очевидное, что я пропустил?C# Отправка электронной почты - Проверка работоспособности

string supplierOfThisMaterialEmailAddress = "[email protected]"; // TODO 


string htmlBodyIncludingReplacements = "<html><head><title>E-mail</title></head><body><div>. There has been a request on the hello.co.nz website for: " + txtMaterialDescription.Text + 
      "<br />Full Name: <b>" + fullName + "</b><br />" + 
      etc.."; 

     string textOnlyBodyIncludingReplacements = "E-mail. There has been a request on the freematerials.co.nz website for: " + txtMaterialDescription.Text + 
      "Full Name: " + fullName + 
      "etc.."; 

     string subject = "Someone has contacted you"; 

     CustomMailer mailer = new CustomMailer(); 
     string result = mailer.SendEmail(subject, htmlBodyIncludingReplacements, supplierOfThisMaterialEmailAddress, textOnlyBodyIncludingReplacements); 
     if (result != null) 
      lblMessage.Text = result; 
     else 
      lblMessage.Text = "Thank you - email has been sent"; 

А класс:

public class CustomMailer 
    { 
     public string SendEmail(string subject, string htmlBodyIncludingReplacements, string emailTo, string textOnlyBodyIncludingReplacements) 
     { 
      try 
      { 
       MailAddress sender = new MailAddress("[email protected]", "Dave Mateer"); 
       emailTo = "[email protected]"; // testing 
       MailAddress recipient = new MailAddress(emailTo, null); 

       MailMessage message = new MailMessage(sender, recipient); 
       message.Subject = subject; 

       AlternateView textView = AlternateView.CreateAlternateViewFromString(textOnlyBodyIncludingReplacements, null, "text/plain"); 
       AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlBodyIncludingReplacements, null, MediaTypeNames.Text.Html); 
       message.AlternateViews.Add(textView); 
       message.AlternateViews.Add(htmlView); 

       SmtpClient client = new SmtpClient(); 
       client.Send(message); 
      } 

      catch (Exception ex) 
      { 
       throw new Exception(); 
      } 
      return null; 
     } 
    } 
+0

В чем проблема? ничего не происходит, сообщение об ошибке? – Benjol

ответ

3

На первый взгляд, уловив общий объект Exception и бросает новый один будет иметь чистый эффект еды каких-либо исключений, брошенные SendEmail.

Остальное выглядит хорошо.

+0

Большое спасибо всем - хотел, чтобы здравый смысл был проверен, что я не пропустил ничего очевидного в emailling. Оценил. –

0

Вы должны изменить catch (Exception ex) { throw new Exception(); } к:

catch (Exception ex) 
      { 
       throw; 
      } 

, потому что в противном случае вы потеряете все данные, которые пришли с оригинальным excepion, сброшенная

+1

... или просто удалите блокирующий блок – Foole

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