我正在使用c#在mvc4中完成我的项目。我的网站上有联系页面。我需要的是我必须在点击发送按钮时从其他ID的接收我的电子邮件ID。我使用以下代码
public void ReceiveMail(string name,string email,string message)
{
MailMessage msg = new MailMessage();
HttpContext ctx = HttpContext.Current;
msg.To.Add(new MailAddress("MyEmailId"));
msg.From = new MailAddress(email);
msg.Subject =name + "send a message";
msg.Priority = MailPriority.High;
msg.Body = message;
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");// i am confused what to write here
SmtpServer.Send(msg);
}
显示错误
The SMTP server requires a secure connection or the client was not authenticated.
The server response was: 5.7.0 Must issue a STARTTLS command first.
at4sm42219747pbc.30 - gsmtp
我不知道从哪台服务器收到邮件。那我怎么解决这个问题呢。请帮帮我
答案 0 :(得分:1)
使用Gmail发送电子邮件需要一些其他设置。首先,端口号应为587(而不是默认值25)。第二,Gmail需要安全连接。当然,您应该提供有效的凭证。
总而言之,SmtpClient的初始化应该如下所示:
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com", 587);
SmtpServer.EnableSsl = true;
SmtpServer.Credentials = new NetworkCredential("username@gmail.com", "password");
答案 1 :(得分:1)
如错误所示,应首先使用STARTTLS命令。 Thas意味着gmail只接受通过安全连接的邮件。在this answer中,enableSsl设置为true。正如documentation from microsoft所说,SmtpClient类也有这样的属性。此外,您应将凭据保留在smptClient中。我认为gmail只接受来自身份验证用户的邮件。我认为整个问题已经解决here。
答案 2 :(得分:0)
您需要使用NetworkCredential
登录Gmail SMTP服务器。错误很明显。
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("your-email", "your-password");
答案 3 :(得分:0)
你试过了吗?
smtpServer.Host = "smtp.gmail.com";
smtpServer.Port = 587;
smtpServer.Credentials =
new NetworkCredential("SenderGmailUserName", "SenderPassword");