0

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) に到達するとハングアップし、フォームを表示できません。デバッグを停止するか、プロセスを強制終了する必要があります。

それが機能しない理由はありますか?

4

1 に答える 1

1

渡されるすべての値が有効であることを確認しましたか? 確認できる可能性があるのは、ホスト/ポートです。また、'from' と 'to' は有効な電子メール アドレスを取得していますか? それらは少し疑わしく見えます。

于 2013-09-20T14:42:24.750 に答える