C# - 无需登录服务器即可发送电子邮件

时间:2009-12-15 08:26:26

标签: c# smtp email

我有一个需要发送电子邮件的应用程序。目前,这就是我正在使用的:

        System.Net.Mail.MailMessage MyMailMessage = new System.Net.Mail.MailMessage();
        MyMailMessage.From = new System.Net.Mail.MailAddress(fromemail.Text);
        MyMailMessage.To.Add(toemail.Text);
        MyMailMessage.Subject = subject.Text;
        MyMailMessage.Body = body.Text;
        System.Net.Mail.SmtpClient SMTPServer = new System.Net.Mail.SmtpClient("smtp.gmail.com");
        SMTPServer.Port = 587;
        SMTPServer.Credentials = new System.Net.NetworkCredential("email", "password");
        SMTPServer.EnableSsl = true;
        SMTPServer.Send(MyMailMessage);

是否有一种简单的方法来发送电子邮件而无需登录服务器?谢谢。

4 个答案:

答案 0 :(得分:1)

GMail的SMTP服务器始终需要身份验证。您可能需要设置自己的服务器以发送电子邮件而无需身份验证。

答案 1 :(得分:1)

将SMTP服务器配置到本地网络(防火墙后面以避免成为垃圾邮件源)并直接使用它。您可以在IIS中创建一个。

答案 2 :(得分:1)

有两种方法可以实现这一目标:

1)使用本地smtp服务器(例如,在Win2003 / 2008服务器上使用IIS的服务器)并将消息写入本地提取队列。只需极少的更改即可实现。

2)您需要解析目标smtp服务器。例如,当您想要在msn.com上向某人发送电子邮件时,您需要获取msn.com的MX记录,例如像mx1.msn.com这样的东西。然后,您可以直接连接到此SMTP服务器并将您的电子邮件发送给(本地)收件人。请注意,没有内置的方法来解析.NET中的MX主机(在某种意义上,Dns类上没有方法可以实现这一点) - 您需要“手动”执行此操作。此外,大多数SMTP主机都会拒绝来自家庭/住宅IP地址的连接。

答案 3 :(得分:0)

您需要一台不需要身份验证的SMTP服务器,但是为了阻止它成为垃圾邮件服务器,它需要一些其他类型的保护,如防火墙。