我通过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是正确的,即使用户名和密码不正确,它也不会验证凭据并发送邮件。 我是否必须为凭据添加其他验证?
答案 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