簡體   English   中英

如何通過C#asp.net發送郵件以獲取聯系表

[英]How to send mail through C# asp.net for contact form

我想創建聯系表發送電子郵件( fromto會,從用戶界面):

try {
   MailMessage mail = new MailMessage();
   SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
   mail.From = new MailAddress("fromadd");
   mail.To.Add("toadd");
   mail.Subject = "Test Mail";
   mail.Body = "This is for testing SMTP mail from GMAIL";
   SmtpServer.Port = 587;
   SmtpServer.Credentials = new System.Net.NetworkCredential("username","password");
   SmtpServer.EnableSsl = true;

   SmtpServer.Send(mail);
   MessageBox.Show("mail Send");
}
catch (Exception ex) {
   MessageBox.Show(ex.ToString());
}

這僅適用於Gmail-但是,我想使其適用於任何電子郵件提供商-我將如何處理?

您應該在web.config中配置SmtpClient

<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="network">
        <network
          host="localhost"
          port="25"
          defaultCredentials="true"
        />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

然后,您可以在代碼中執行以下操作:

    try
    {
        MailMessage mail = new MailMessage();
        mail.From = new MailAddress("fromadd");
        mail.To.Add("toadd");
        mail.Subject = "Test Mail";
        mail.Body = "This is for testing SMTP mail from GMAIL";

        SmtpClient SmtpServer = new SmtpClient();            
        SmtpServer.Send(mail);
        MessageBox.Show("mail Send");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }

您可以在web.config中設置SmtpClient配置。 這將使其變得靈活。

http://blog.dotnetclr.com/archive/2009/08/18/511.aspx

http://msdn.microsoft.com/zh-CN/library/w355a94k.aspx

不要將硬編碼參數用於與smtp服務器的連接。

請改用webconfig。 您的程序將更加“通用”。 當您想通過另一個SMTP服務器發送時,只需更改配置

您也可以嘗試:

    MailMessage msgObj = new MailMessage();

    msgObj.To = "example@example.com";
    msgObj.From = "Mike";
    msgObj.Bcc = "example@example.com";
    msgObj.Subject = "Test Message";
    msgObj.Body = "Hello World!";
    SmtpMail.SmtpServer = "Your Server";
    SmtpMail.Send("FromEmail", "ToEmail", "Subject", "Query");
    SmtpMail.Send(msgObj);

在我看來,可能唯一阻止您使用任何電子郵件服務器發送電子郵件的是某些郵件服務器需要身份驗證(或可能是備用端口號)的事實。

這是一些基本代碼,應該使您指向正確的方向

public class SendMail
{

    public SendMail(string SMTPServer, string fromEmail)
    {
        this.SMTPServer = SMTPServer;
        this.FromEmail = fromEmail;
    }

    public SendMail(string SMTPServer, string fromEmail, string Username, string Password) : this(SMTPServer, fromEmail)
    {
        this.Username = Username;
        this.Password = Password;
    }

    public string SMTPServer { get; set; }
    public string FromEmail { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }

    public void Send(string toEmail, string subject, string data)
    {
        MailMessage mailMsg = new MailMessage();
        mailMsg.To.Add(toEmail);

        MailAddress mailAddress = new MailAddress(this.FromEmail);

        mailMsg.From = mailAddress;

        mailMsg.Subject = subject;
        mailMsg.Body = data;
        mailMsg.IsBodyHtml = true;
        SmtpClient smtpClient = new SmtpClient(this.SMTPServer, 25);

        if (this.Username.Length > 0 && this.Password.Length > 0)
        {
            System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(this.Username, this.Password);
            smtpClient.Credentials = credentials;
        }

        smtpClient.Send(mailMsg);
    }

}

我正在嘗試此代碼。

try
{
    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("best@technosys.com");
    mail.To.Add("best@technosys.com");
    mail.Subject = "Accept Request";
    mail.Body = body;
    mail.IsBodyHtml = true;
    SmtpClient smtp = new SmtpClient("smtp.gmail.com");
   smtp.Credentials = new System.Net.NetworkCredential("best@technosys.com", " password");
    smtp.EnableSsl = true;
    smtp.UseDefaultCredentials = true;
    smtp.Send(mail);
}
catch (Exception ex)
{
   ViewData.ModelState.AddModelError("_FORM", ex.ToString());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM