Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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
Javascript 如何在c#中将静态html作为电子邮件内容发送?_Javascript_C# - Fatal编程技术网

Javascript 如何在c#中将静态html作为电子邮件内容发送?

Javascript 如何在c#中将静态html作为电子邮件内容发送?,javascript,c#,Javascript,C#,我正在使用c#和JQuery向用户电子邮件id发送带有一些动态内容的静态html。 下面是JavaScriot文件,我在其中调用SendEmail方法 <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="http://maxcdn.bootstr

我正在使用c#和JQuery向用户电子邮件id发送带有一些动态内容的静态html。 下面是JavaScriot文件,我在其中调用SendEmail方法

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


   <!-- Server CDN Files -- Start -->
    <!--<link class="temp" href="http://klcdn.meltwish.com/styles/store/1.0.2/store.css" rel="stylesheet" />-->
    <link href="http://localhost:60339/styles/store/1.0.2/store.css" rel="stylesheet" />
</head>
<body>

   <img src = "http://www.aspsnippets.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPSnippets
</span>
</body>
</html>
$(“.EmailInvoice”)。单击(函数(){

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


   <!-- Server CDN Files -- Start -->
    <!--<link class="temp" href="http://klcdn.meltwish.com/styles/store/1.0.2/store.css" rel="stylesheet" />-->
    <link href="http://localhost:60339/styles/store/1.0.2/store.css" rel="stylesheet" />
</head>
<body>

   <img src = "http://www.aspsnippets.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPSnippets
</span>
</body>
</html>
下面是invoiceEmail.asmx文件

using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Web;

using System.Net.Mail;
using System.Web.Services;
using System.Web.Hosting;

namespace meltwish
{
    /// <summary>
/// Summary description for invoiceEmail
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
 [System.Web.Script.Services.ScriptService]
public class invoiceEmail : System.Web.Services.WebService
{


    public static string PopulateBody(string userName, string title, string url, string description)
    {
        string body = string.Empty;
        using (StreamReader reader = new StreamReader(HostingEnvironment.MapPath("~/EmailTemplate.html")))
        {
            body = reader.ReadToEnd();
        }
        body = body.Replace("{UserName}", userName);
        body = body.Replace("{Title}", title);
        body = body.Replace("{Url}", url);
        body = body.Replace("{Description}", description);
        return body;
    }

    public static void SendHtmlFormattedEmail(string recepientEmail, string subject, string body)
    {
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["username"]);
        mailMessage.Subject = subject;
        mailMessage.Body = body;
        mailMessage.IsBodyHtml = true;
        mailMessage.To.Add(new MailAddress(recepientEmail));
        SmtpClient smtp = new SmtpClient();
        smtp.Host = ConfigurationManager.AppSettings["Host"];
        smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
        System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
        NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"];
        NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = NetworkCred;
        smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
        smtp.Send(mailMessage);
    }

    //object sender, EventArgs e
   [WebMethod]
    public static string SendEmail()
    {

         //string body = this.PopulateBody("John",
        string body = PopulateBody("John",
            "Fetch multiple values as Key Value pair in ASP.Net AJAX AutoCompleteExtender",
            "http://www.aspsnippets.com/Articles/Fetch-multiple-values-as-Key-Value-pair-" +
            "in-ASP.Net-AJAX-AutoCompleteExtender.aspx",
            "Here Mudassar Ahmed Khan has explained how to fetch multiple column values i.e." +
            " ID and Text values in the ASP.Net AJAX Control Toolkit AutocompleteExtender"
            + "and also how to fetch the select text and value server side on postback");
        SendHtmlFormattedEmail("wajedkh@gmail.com", "New article published!", body);
        //this.SendHtmlFormattedEmail("wajedkh@gmail.com", "New article published!", body);
        return "sajjad";
    }


}
}
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


   <!-- Server CDN Files -- Start -->
    <!--<link class="temp" href="http://klcdn.meltwish.com/styles/store/1.0.2/store.css" rel="stylesheet" />-->
    <link href="http://localhost:60339/styles/store/1.0.2/store.css" rel="stylesheet" />
</head>
<body>

   <img src = "http://www.aspsnippets.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPSnippets
</span>
</body>
</html>
使用系统;
使用System.Collections.Generic;
使用系统配置;
使用System.IO;
使用System.Linq;
使用System.Web;
使用System.Net.Mail;
使用System.Web.Services;
使用System.Web.Hosting;
名称空间meltwish
{
/// 
///invoiceEmail的摘要说明
/// 
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
公共类发票电子邮件:System.Web.Services.WebService
{
公共静态字符串PopulateBody(字符串用户名、字符串标题、字符串url、字符串描述)
{
string body=string.Empty;
使用(StreamReader=newstreamreader(HostingEnvironment.MapPath(“~/EmailTemplate.html”))
{
body=reader.ReadToEnd();
}
body=body.Replace(“{UserName}”,UserName);
body=body.Replace(“{Title}”,Title);
body=body.Replace(“{Url}”,Url);
body=body.Replace(“{Description}”,Description);
返回体;
}
公共静态void SendHtmlFormattedEmail(字符串recepientEmail、字符串主题、字符串正文)
{
MailMessage MailMessage=新建MailMessage();
mailMessage.From=新邮件地址(ConfigurationManager.AppSettings[“用户名]);
mailMessage.Subject=主题;
mailMessage.Body=Body;
mailMessage.IsBodyHtml=true;
mailMessage.To.Add(新邮件地址(recepientEmail));
SmtpClient smtp=新SmtpClient();
smtp.Host=ConfigurationManager.AppSettings[“主机”];
smtp.EnableSsl=Convert.ToBoolean(ConfigurationManager.AppSettings[“EnableSsl”]);
System.Net.NetworkCredential NetworkCred=新系统.Net.NetworkCredential();
NetworkCred.UserName=ConfigurationManager.AppSettings[“UserName”];
NetworkCred.Password=ConfigurationManager.AppSettings[“Password”];
smtp.UseDefaultCredentials=true;
smtp.Credentials=NetworkCred;
smtp.Port=int.Parse(ConfigurationManager.AppSettings[“端口]);
smtp.Send(mailMessage);
}
//对象发送方,事件参数
[网络方法]
公共静态字符串sendmail()
{
//string body=this.PopulateBody(“John”,
字符串体=PopulateBody(“约翰”,
“在ASP.Net AJAX AutoCompleteXtender中获取多个值作为键值对”,
"http://www.aspsnippets.com/Articles/Fetch-multiple-values-as-Key-Value-pair-" +
“在ASP.Net AJAX AutoCompleteXtender.aspx中”,
“这里Mudassar Ahmed Khan解释了如何获取多个列值,即。”+
“ASP.Net AJAX控件工具包AutoCompleteXtender中的ID和文本值”
+“以及如何在回发时获取选择文本和值服务器端”);
SendHtmlFormattedEmail(“wajedkh@gmail.com“,”新文章发表!”,正文);
//此.SendHtmlFormattedEmail(“wajedkh@gmail.com“,”新文章发表!”,正文);
返回“sajjad”;
}
}
}
这是添加到项目中的HTMl文件。名称为EmailTemplate.HTMl

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


   <!-- Server CDN Files -- Start -->
    <!--<link class="temp" href="http://klcdn.meltwish.com/styles/store/1.0.2/store.css" rel="stylesheet" />-->
    <link href="http://localhost:60339/styles/store/1.0.2/store.css" rel="stylesheet" />
</head>
<body>

   <img src = "http://www.aspsnippets.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPSnippets
</span>
</body>
</html>



你好{UserName},

ASPSnippets上发布了一篇新文章。


{说明}

谢谢
ASPSnippets
这是我在Web.Config文件中添加的

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


   <!-- Server CDN Files -- Start -->
    <!--<link class="temp" href="http://klcdn.meltwish.com/styles/store/1.0.2/store.css" rel="stylesheet" />-->
    <link href="http://localhost:60339/styles/store/1.0.2/store.css" rel="stylesheet" />
</head>
<body>

   <img src = "http://www.aspsnippets.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPSnippets
</span>
</body>
</html>
<appSettings>
      <add key="Host" value="smtp.gmail.com"/>
      <add key="EnableSsl" value="true"/>
      <add key="UserName" value="hussainsajjad9991@gmail.com"/>
     <add key="Password" value="xxxxx"/>
      <add key="Port" value="587"/>
</appSettings>

实际上,每当我尝试调用javascript ajax方法时,它都会返回错误内容

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


   <!-- Server CDN Files -- Start -->
    <!--<link class="temp" href="http://klcdn.meltwish.com/styles/store/1.0.2/store.css" rel="stylesheet" />-->
    <link href="http://localhost:60339/styles/store/1.0.2/store.css" rel="stylesheet" />
</head>
<body>

   <img src = "http://www.aspsnippets.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPSnippets
</span>
</body>
</html>
帮帮我……

下面的C代码对我来说很有用

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


   <!-- Server CDN Files -- Start -->
    <!--<link class="temp" href="http://klcdn.meltwish.com/styles/store/1.0.2/store.css" rel="stylesheet" />-->
    <link href="http://localhost:60339/styles/store/1.0.2/store.css" rel="stylesheet" />
</head>
<body>

   <img src = "http://www.aspsnippets.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPSnippets
</span>
</body>
</html>
[System.Web.Services.WebMethod]
 public static string SendEmail()
 {
  using (MailMessage mm = new MailMessage("From", "To"))
  {
    mm.Subject = "Subject ";
    mm.Body = "<html><head></head><body> Content</body></html>"; 
    mm.IsBodyHtml=true;                                                              
   SmtpClient smtp = new SmtpClient();
   smtp.Host = "smtp.gmail.com";
   smtp.EnableSsl = false;
   NetworkCredential NetworkCred = new NetworkCredential("From", "password");
                   smtp.UseDefaultCredentials = false;
                   smtp.Credentials = NetworkCred;
                   smtp.Port = 587;
                   smtp.Timeout = 2000000;
                   smtp.Send(mm);
                   return "Success";  
   }
}

错误是什么?是5XX!!实际上,当我从Ajax调用我的SendEmail()时,它会发出错误警报。将数据:JSON.stringify({})更改为数据:“{}”,如果没有参数,则不需要JSON.stringify在调用函数SendEmail()时没有参数然后,错误部分将以警报的形式执行。错误:函数(){alert(“error”);}