Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web应用的电子邮件解决方案_Asp.net_Email_Integration - Fatal编程技术网

Asp.net web应用的电子邮件解决方案

Asp.net web应用的电子邮件解决方案,asp.net,email,integration,Asp.net,Email,Integration,我在ASP.NET中开发了一个web应用程序。我想在我的应用程序中集成电子邮件解决方案 以下是我的核心要求: 1.用户在网站注册后立即发送电子邮件。 2.向所有注册用户发送通知电子邮件 对于第二个要求,我们可以把它看作是批量邮件,因为我们向所有用户发送邮件。 请给我最好的解决办法。是否需要设置SMTP服务器?通常不需要。请确保web服务器在系统上安装了SMTP服务,并且您可以使用类。这将满足您发送电子邮件的所有基本需求 如果您开始遇到大量注册用户的问题,或者批量邮件中的密件抄送地址过多的问题,那

我在ASP.NET中开发了一个web应用程序。我想在我的应用程序中集成电子邮件解决方案

以下是我的核心要求: 1.用户在网站注册后立即发送电子邮件。 2.向所有注册用户发送通知电子邮件

对于第二个要求,我们可以把它看作是批量邮件,因为我们向所有用户发送邮件。
请给我最好的解决办法。是否需要设置SMTP服务器?

通常不需要。请确保web服务器在系统上安装了SMTP服务,并且您可以使用类。这将满足您发送电子邮件的所有基本需求


如果您开始遇到大量注册用户的问题,或者批量邮件中的密件抄送地址过多的问题,那么您将需要查看基本邮件管理器(可以突发发送批量邮件的功能)或者是一个完整的电子邮件服务器。

通常不会。请确保web服务器在系统上安装了SMTP服务,并且您可以使用类。这将满足您发送电子邮件的所有基本需求


如果您开始遇到大量注册用户的问题,或者批量邮件中的密件抄送地址过多的问题,那么您将需要寻找一个基本的邮件管理器(可以突发发送批量邮件的东西)或一个完善的电子邮件服务器。

是的,您需要一个SMTP服务器,尽管它不必与Web服务器安装在同一台机器上(甚至可以由第三方服务提供)

就个人而言,我建议您创建一个电子邮件队列系统-而不是直接使用system.NET命名空间的ASP.NET脚本来创建和发送使用特定SMTP服务器的电子邮件,您有一个数据库表(即Subject、Body和to address)

然后,一个单独的作业从该表中读取并发送电子邮件。单独表格/作业的原因如下:

  • 它避免了SMTP操作 在HTTP事务内部发生- 如果SMTP服务器过载或 更糟糕的是,不可用,您的网页将 好像挂了

  • 如果SMTP服务器是临时的 不可用或过载,您必须 将重试列添加到 你的桌子

  • 如果您对SMTP服务器的限制 可以发送的电子邮件数 一段时间(防止垃圾邮件)你 只能将作业配置为 尝试在上发送前x封电子邮件 每次互动

  • 如果你想发送延迟的电子邮件, 这只是一个简单的问题,添加一个 “SendAfter”列


是的,您需要一个SMTP服务器,尽管它不必与Web服务器安装在同一台机器上(甚至可以由第三方服务提供)

就个人而言,我建议您创建一个电子邮件队列系统-而不是直接使用system.NET命名空间的ASP.NET脚本来创建和发送使用特定SMTP服务器的电子邮件,您有一个数据库表(即Subject、Body和to address)

然后,一个单独的作业从该表中读取并发送电子邮件。单独表格/作业的原因如下:

  • 它避免了SMTP操作 在HTTP事务内部发生- 如果SMTP服务器过载或 更糟糕的是,不可用,您的网页将 好像挂了

  • 如果SMTP服务器是临时的 不可用或过载,您必须 将重试列添加到 你的桌子

  • 如果您对SMTP服务器的限制 可以发送的电子邮件数 一段时间(防止垃圾邮件)你 只能将作业配置为 尝试在上发送前x封电子邮件 每次互动

  • 如果你想发送延迟的电子邮件, 这只是一个简单的问题,添加一个 “SendAfter”列


我发现将System.Net.Mail库包装在helper类中是最容易的,这样我就可以在任何需要发送电子邮件的项目中简单地包含我的EmailHelper类

这是我的EmailHelper中的返回的Send()方法。你可以看到它很容易使用

public bool Send() {
    bool emailSent = false;

    if (_to.Count > 0) {
        MailMessage msg = new MailMessage();
        SmtpClient mail = new SmtpClient("your.email.host");

        msg.From = new MailAddress(_fromAddress, _fromName);

        foreach (String to in _to) {
            msg.To.Add(new MailAddress(to));
        }

        foreach (String cc in _cc) {
            msg.CC.Add(new MailAddress(cc));
        }

        msg.Subject = _subject;
        msg.Body = _body;
        msg.IsBodyHtml = true;
        mail.Send(msg);
        emailSent = true;
    }
    return emailSent;
}

请注意_fromAddress、_fromName等只是EmailHelper类的私有属性。私有属性_to和_cc都只是字符串类型的列表。

我发现在helper类中包装System.Net.Mail库是最简单的方法,这样我就可以在任何需要发送电子邮件的项目中简单地包含我的EmailHelper类

这是我的EmailHelper中的返回的Send()方法。你可以看到它很容易使用

public bool Send() {
    bool emailSent = false;

    if (_to.Count > 0) {
        MailMessage msg = new MailMessage();
        SmtpClient mail = new SmtpClient("your.email.host");

        msg.From = new MailAddress(_fromAddress, _fromName);

        foreach (String to in _to) {
            msg.To.Add(new MailAddress(to));
        }

        foreach (String cc in _cc) {
            msg.CC.Add(new MailAddress(cc));
        }

        msg.Subject = _subject;
        msg.Body = _body;
        msg.IsBodyHtml = true;
        mail.Send(msg);
        emailSent = true;
    }
    return emailSent;
}

请注意_fromAddress、_fromName等只是EmailHelper类的私有属性。私有属性_to和_cc都只是字符串类型的列表。

我发现它是asp.net中最简单的方法,并且在许多地方都可以使用。我正在使用System.Net.Mail库发送电子邮件

    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
    MailMessage msg = new MailMessage();
    msg.From = new MailAddress("fromEmailAddress@domain.com");
    msg.To.Add("toEmailAddress@domain.com);

    msg.IsBodyHtml = true;
    msg.Subject = "Example Email";
    msg.Priority = MailPriority.High;
    msg.Body = "Hello world...";

    smtp.Host = "smtp.domainName";
    smtp.EnableSsl = true;
    System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
    NetworkCred.UserName = "fromEmailAddress@domain.com";
    NetworkCred.Password = "password";

    smtp.UseDefaultCredentials = true;
    smtp.Credentials = NetworkCred;

    try
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
            smtp.Send(msg);
        }

        catch (Exception ex)
        {}
我希望这个代码对你有用


祝你好运,祝你编码愉快:)

我在asp.net中找到了最简单的方法,它在很多地方都能工作。我正在使用System.Net.Mail库发送电子邮件

    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
    MailMessage msg = new MailMessage();
    msg.From = new MailAddress("fromEmailAddress@domain.com");
    msg.To.Add("toEmailAddress@domain.com);

    msg.IsBodyHtml = true;
    msg.Subject = "Example Email";
    msg.Priority = MailPriority.High;
    msg.Body = "Hello world...";

    smtp.Host = "smtp.domainName";
    smtp.EnableSsl = true;
    System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
    NetworkCred.UserName = "fromEmailAddress@domain.com";
    NetworkCred.Password = "password";

    smtp.UseDefaultCredentials = true;
    smtp.Credentials = NetworkCred;

    try
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
            smtp.Send(msg);
        }

        catch (Exception ex)
        {}
我希望这个代码对你有用

祝您好运,编码愉快:)