如果你想發送電子郵件而無需驗證,恐怕是不可能的。如果您網站上的任何用戶可以發送電子郵件而無需密碼,那太可怕了。它將允許用戶從其他人帳戶發送電子郵件。因此,考慮安全,發送電子郵件會要求提供
var fromAddress = ""; // Email Address here. This will be the sender.
string fromPassword = ""; // Password for above mentioned email address.
var toAddress = "";// Receiver email address here
string subject = "Hi";
string body = "Body Text here";
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "smtp.gmail.com"; // this is for gmail.
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;
}
smtp.Send(fromAddress, toAddress, subject, body);
[編輯] 對不起我的錯誤,我沒有注意到,電子郵件地址和密碼。他們都用於相同的目的。如果您使用.Net框架的更高版本(2.0或更高版本),則使用System.Net.Mail。如果您使用System.Web.Mail,它只會顯示一條警告,說這已被棄用。但那會起作用。
這裏是System.web.mail
MailMessage mail = new MailMessage();
mail.To.Add("[email protected]");
mail.From = new MailAddress("[email protected]");
mail.Subject = "Email using Gmail";
mail.Body = "";
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
smtp.Credentials = new System.Net.NetworkCredential(mail.From,"YourPassword");
smtp.Send(mail);
錯誤信息非常清楚地表明:''這個郵件服務器需要認證''。您似乎沒有提供任何身份驗證。您如何提供它取決於郵件服務器的要求。它需要什麼? – David
您沒有在系統上運行的smtp服務或您無法證明無效的證書(我敢打賭前者)。 –