1

我特别制作了本教程作为基础: 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;

公共部分类 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) { } }}

4

3 回答 3

0

我认为 Gmail SMTP 端口应该是 465,而不是 587。

https://support.google.com/mail/troubleshooter/1668960?hl=en&from=75726&rd=1#ts=1665018,1665142

于 2013-06-24T08:13:14.253 回答
0

您是否尝试过评论那篇文章/联系作者?

我想这里有两件事:

A. 你在 catch 块中没有做任何事情。您应该考虑在 catch 块中遵循

catch(Exception ex){
DisplayMessage.Text = ex.Message;
DisplayMessage.Visible = true;
}

B. 检查您使用的 gmail 帐户是否启用了 pop3/imap 的 smtp。

于 2013-06-24T08:15:39.770 回答
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);
    }
于 2013-06-24T08:17:26.747 回答