发送电子邮件asp.net c#

Nur*_*lan 12 c# asp.net email

是否可以使用C#中的asp.net项目从我的计算机(localhost)发送电子邮件?最后我要将我的项目上传到网络服务器,但我想在上传前测试它.

我找到了准备好的源代码并尝试在localhost中运行它们,但它们都没有成功运行.例如这段代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Net.Mail;

    namespace sendEmail
    {
        public partial class _default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {

            }
            protected void Btn_SendMail_Click(object sender, EventArgs e)
            {
                MailMessage mailObj = new MailMessage(
                    txtFrom.Text, txtTo.Text, txtSubject.Text, txtBody.Text);
                SmtpClient SMTPServer = new SmtpClient("localhost");
                try
                {
                    SMTPServer.Send(mailObj);
                }
                catch (Exception ex)
                {
                    Label1.Text = ex.ToString();
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

那么如何使用asp.net C#发送电子邮件?我应该设置一些服务器配置吗?

Waq*_*jua 11

从Asp.Net发送电子邮件:

    MailMessage objMail = new MailMessage("Sending From", "Sending To","Email Subject", "Email Body");
    NetworkCredential objNC = new NetworkCredential("Sender Email","Sender Password");
    SmtpClient objsmtp = new SmtpClient("smtp.live.com", 587); // for hotmail
    objsmtp.EnableSsl = true;
    objsmtp.Credentials = objNC;
    objsmtp.Send(objMail);
Run Code Online (Sandbox Code Playgroud)

  • @NurlanKenzhebekov我从不使用任何服务.发送电子邮件是一个简单的过程.如果你使用任何服务然后公司提供电子邮件域,我认为你只需要使用smtp发送电子邮件,不需要这样的服务器配置. (2认同)

COL*_*OLD 7

如果你有一个Gmail帐户,你可以使用谷歌smtp发送电子邮件

smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(username,passwordd);
smtpClient.EnableSsl = true;
smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud)


Spi*_*keh 5

上面的代码应该可以正常工作,但是您需要将以下内容添加到web.config中(作为任何基于代码的SMTP配置的替代方法):

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network">
        <network host="your.smtpserver.com" port="25" userName="smtpusername" password="smtppassword" />
      </smtp>
    </mailSettings>
  </system.net>
Run Code Online (Sandbox Code Playgroud)

如果您无法访问远程SMTP服务器(我使用自己的POP3/SMTP电子邮件详细信息),您可以在本地IIS实例中设置SMTP服务器,但是您可能会遇到中继问题(因为大多数ISP)消费者IP地址黑名单).

如果您无权访问SMTP服务器,那么一个不错的选择是使用以下设置而不是上述设置:

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
          <specifiedPickupDirectory pickupDirectoryLocation="C:\mail"/>
      </smtp>
    </mailSettings>
  </system.net>
Run Code Online (Sandbox Code Playgroud)

这将创建电子邮件的硬盘副本,非常方便.您需要创建上面指定的目录,否则在尝试发送电子邮件时会收到错误.

您可以在此处根据其他答案在代码中配置这些详细信息(通过在您创建的SmtpClient对象上配置属性),但除非您从数据源获取信息,或者信息是动态的,否则它是多余的编码,当.Net已经为你做了这件事.