通过SMTP发送邮件

时间:2014-06-02 09:57:42

标签: c# smtp

我通过SMTP客户端发送邮件。我已指定服务器地址用户名和密码。

var smtpClient= new SmtpClient(server,portNumber )
                                 {
                                     DeliveryMethod = SmtpDeliveryMethod.Network,
                                     EnableSsl = false,
                                     Timeout = 10000
                                 };
smtpClient.Credentials = new NetworkCredential(username, password, domain);
 var sender = new MailAddress(EmailAddess, "abc");
                var message = new MailMessage()
                {
                    IsBodyHtml = false,
                    Sender = sender,
                    From = sender,
                    Body = "Plain text test",
                    Subject = "Test Message, Please ignore"
                };
smtpClient.Send(message);

如果Servername和Port是正确的,即使用户名和密码不正确,它也不会验证凭据并发送邮件。 我是否必须为凭据添加其他验证?

2 个答案:

答案 0 :(得分:1)

  

如果Servername和Port是正确的,它不会验证凭据   即使用户名和密码不正确,也会发送邮件。我   必须为凭据添加额外的验证吗?

取决于服务器。特别是内部服务器(即无法通过互联网访问)很乐意在没有用户名和密码的情况下转发来自IP的电子邮件。例如,我公司的内部电子邮件服务器接受来自某些IP范围的电子邮件,而不需要用户名或密码。

此外,如果电子邮件发送到服务器,它通常不需要身份验证。这通常仅用于中继(即,当服务器应该将电子邮件发送到另一个服务器时)。

答案 1 :(得分:0)

你可以尝试这样的事情。

 System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
    message.To.Add(ToEmail);
    message.Subject = Subject;
    message.From = new System.Net.Mail.MailAddress(FromEmail);
    message.Body = Message;
    System.Net.Mail.SmtpClient smtpAddress = new System.Net.Mail.SmtpClient("IP");
    smtpAddress.Send(message);

ToEmail =谁将收到电子邮件。 主题=电子邮件的主题。 FromEmail =谁发送了电子邮件。 (可以是任何东西) 消息=消息。 IP =是SMTPCLIENT IP