2013-09-20 4 views
0

Я пишу форму окна, которая может отправлять сообщения на C#.Отправка электронной почты в C# не работает

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

Вот код, чтобы отправить сообщение:

private void sendEmail() 
    { 
     string host = ""; 
     int port = 0; 

     host = checkFromAddress(ref port); 

     try 
     { 
      // Create the email to send 
      System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); 
      message.To.Add(recipient1.Text); 
      message.Subject = "subject"; 
      message.From = new System.Net.Mail.MailAddress(userName.Text); 
      message.Body = "Test Messge"; 

      // Setup smtp information related to the host used 
      System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(); 
      smtp.Host = host; 
      smtp.Port = port; 
      smtp.EnableSsl = true; 
      smtp.Credentials = new System.Net.NetworkCredential(userName.Text, password.Text); 

      // Send the message 
      smtp.Send(message); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Please check email settings and try again"); 
     } 
    } 

имя пользователя и пароль вводятся в форму, хост и порт определяются на основе учетных данных пользователя.

Я отлаживаю программу, и когда она добирается до smtp.Send (сообщение), она просто зависает, и я не могу открыть форму. Я должен остановить отладку или убить процесс.

Любые идеи, почему это не работает?

+4

Вы пытались дать ему время ожидания? –

+2

Я знаю, что конструктор в MailAddress (userName.Text) требует, чтобы переменная была адресом электронной почты, а не именем? Помимо этого я предлагаю подход к сокращению составных частей. Установите некоторые строковые литералы, которые вы знаете наверняка, должны работать, а затем работать в обратном направлении. –

+0

Спасибо за предложения, я посмотрю, что произойдет, если я дам ему время ожидания. – RXC

ответ

1

Вы подтвердили, что все принятые значения действительны? Возможные вещи для проверки - хост/порт. Кроме того, являются ли «от» и «до» действительными адресами электронной почты? Они выглядят немного подозрительно.

+0

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

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