C# でメッセージを送信できる Windows フォームを作成しています。
ある時点でこれが機能してメッセージを送信していましたが、メッセージを送信するときにプログラムがハングします。
メッセージを送信するコードは次のとおりです。
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(message) に到達するとハングアップし、フォームを表示できません。デバッグを停止するか、プロセスを強制終了する必要があります。
それが機能しない理由はありますか?