我特别以本教程为基础:http://www.codeproject.com/Tips/371417/Send-Mail-Contact-Form-using-ASP-NET-and-Csharp
我成功调试了错误,但它似乎无法正常工作......请帮助...
预览
背后的代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net;
public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
} protected void SendMail() { // Gmail Address from where you send the mail var fromAddress = "ml27.santos@gmail.com"; // any address where the email will be sending var toAddress = YourEmail.Text.ToString(); //Password of your gmail address const string fromPassword = "Password"; // Passing the values and make a email formate to display string subject = YourSubject.Text.ToString(); string body = "From: " + YourName.Text + "\n"; body += "Email: " + YourEmail.Text + "\n"; body += "Subject: " + YourSubject.Text + "\n"; body += "Question: \n" + Comments.Text + "\n"; // smtp settings var smtp = new System.Net.Mail.SmtpClient(); { smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; smtp.Credentials = new NetworkCredential(fromAddress, fromPassword); smtp.Timeout = 20000; } // Passing values to smtp object smtp.Send(fromAddress, toAddress, subject, body); } protected void Button1_Click(object sender, EventArgs e) { try { //here on button click what will done SendMail(); DisplayMessage.Text = "Message sent!"; DisplayMessage.Visible = true; YourSubject.Text = ""; YourEmail.Text = ""; YourName.Text = ""; Comments.Text = ""; } catch (Exception) { } }}
答案 0 :(得分:0)
我认为Gmail SMTP端口应该是465,而不是587。
https://support.google.com/mail/troubleshooter/1668960?hl=en&from=75726&rd=1#ts=1665018,1665142
答案 1 :(得分:0)
您是否尝试过评论该文章/与作者联系?
我想这里有两件事:
一个。你没有在catch块中做过任何事情。您应该考虑在catch块中跟随
catch(Exception ex){
DisplayMessage.Text = ex.Message;
DisplayMessage.Visible = true;
}
B中。检查您使用的Gmail帐户是否具有启用pop3 / imap的smtp。
答案 2 :(得分:0)
试试这个
protected void SendMail()
{
// any address where the email will be sending
var toAddress = YourEmail.Text.ToString();
//Password of your gmail address
const string fromPassword = "Password";
// Passing the values and make a email formate to display
string subject = YourSubject.Text.ToString();
string body = "From: " + YourName.Text + "\n";
body += "Email: " + YourEmail.Text + "\n";
body += "Subject: " + YourSubject.Text + "\n";
body += "Question: \n" + Comments.Text + "\n";
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("ml27.santos@gmail.com");
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.UseDefaultCredentials = false;
smtpClient.EnableSsl = true;
smtpClient.Credentials = new System.Net.NetworkCredential("ml27.santos@gmail.com", fromPassword);
message.From = fromAddress;
message.To.Add(toAddress);
message.Subject = subject;
message.Priority = MailPriority.High;
message.Body = body;
message.IsBodyHtml = true;
smtpClient.Send(message);
}