提问者:小点点

用C#发送电子邮件不起作用


我正在编写一个windows窗体,它可以用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(消息)时,它就挂起了,我无法调出表单。我必须停止调试或终止进程。

你知道为什么不起作用吗?


共1个答案

匿名用户

您是否验证了传入的所有值都是有效的?可能需要检查的是主机/端口。另外,“发件人”和“收件人”是否获得有效的电子邮件地址?那些看起来有点可疑。