Я пишу форму окна, которая может отправлять сообщения на 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 (сообщение), она просто зависает, и я не могу открыть форму. Я должен остановить отладку или убить процесс.
Любые идеи, почему это не работает?
Вы пытались дать ему время ожидания? –
Я знаю, что конструктор в MailAddress (userName.Text) требует, чтобы переменная была адресом электронной почты, а не именем? Помимо этого я предлагаю подход к сокращению составных частей. Установите некоторые строковые литералы, которые вы знаете наверняка, должны работать, а затем работать в обратном направлении. –
Спасибо за предложения, я посмотрю, что произойдет, если я дам ему время ожидания. – RXC