无法使用SmtpClient发送电子邮件

时间:2017-10-07 15:33:27

标签: c# email

我想从Windows服务应用程序使用SftpClient发送电子邮件。

我正在使用 .NET framework 3.5

我写了下面的代码:

public void SendEmail(string sender, string host, string password, string port,
        string body, string subject, string[] receivers, List<Attachment> attachments)
    {
        SmtpClient client = new SmtpClient()
        {
            Host = host,
            Port = Convert.ToInt32(port),
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new System.Net.NetworkCredential(sender, password)
        };

        MailMessage message = new MailMessage();

        // sender
        MailAddress from = new MailAddress(sender);
        message.From = from;

        // receivers
        foreach (string receiver in receivers) {
            message.To.Add(receiver);
        }

        // attachments
        foreach (Attachment att in attachments)
        {
            message.Attachments.Add(att);
        }

        message.Body = body;
        message.Subject = subject;

        client.Send(message);
    }

我放的凭据是正确的,但如果我使用端口587我得到了:

“试图以其访问权限禁止的方式访问套接字an_ip_address:587”

如果我使用端口465(应该弃用),我得到了:

“System.Net.Mail.SmtpException:发送邮件失败.---&gt; System.IO.IOException:无法从传输连接中读取数据:net_io_connectionclosed。”

关闭Windows防火墙也会发生这种情况。

发送电子邮件的所有参数(密码,主机,端口......)均可由此Windows服务的最终用户配置。

0 个答案:

没有答案