Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
C# 3.0 如何发送自动电子邮件,如时事通讯_C# 3.0_Windows Applications - Fatal编程技术网

C# 3.0 如何发送自动电子邮件,如时事通讯

C# 3.0 如何发送自动电子邮件,如时事通讯,c#-3.0,windows-applications,C# 3.0,Windows Applications,我看到管理员以类似问题结束了一些问题。 我将尝试详细解释我正在寻找的解决方案: 首先,我尝试开发一个windows控制台应用程序 发送频率:周一至周五 有多少用户:从5到20 数据格式: 一个表格,其中行表示国家,列表示不同类型的产品,单元格表示该国家产品的销售情况 限制: 服务用户不喜欢使用pdf或excel,或者任何类型的附件都应该是可以在邮件正文中显示的html格式 目前,我正在使用类似以下内容创建报告: ..... var myStringBuilder = new StringBuil

我看到管理员以类似问题结束了一些问题。 我将尝试详细解释我正在寻找的解决方案:

首先,我尝试开发一个windows控制台应用程序

发送频率:周一至周五

有多少用户:从5到20

数据格式: 一个表格,其中行表示国家,列表示不同类型的产品,单元格表示该国家产品的销售情况

限制: 服务用户不喜欢使用pdf或excel,或者任何类型的附件都应该是可以在邮件正文中显示的html格式

目前,我正在使用类似以下内容创建报告:

.....
var myStringBuilder = new StringBuilder("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">");
myStringBuilder.Append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">");
myStringBuilder.Append("</head><body>");
myStringBuilder.AppendLine();
myStringBuilder.Append("<table style=\"font-family: Calibri; text-align: right; font-size: x-small;\">");
myStringBuilder.AppendLine();
var header = new StringBuilder("<tr><th>a</th><th>CATEG1</th><th>CATEG2</th><th>CATEG3</th><th>CATEG4</th><th>TOTAL</th></tr>");
var line = new StringBuilder("<tr><td>a</td><td>b</td><td>c</td><td>z</td><td>e</td><td>f</td></tr>");
foreach (var a in _actuals)
        {
            line.Replace("a", a.CountryName);
            if(a.Segment.ToLowerInvariant().Equals("categ1")) {
               line.Replace("b", "[" + string.Format("{0:0,#}", a.LsvLcFact / 1000) + "]"); }
            else if (a.Segment.ToLowerInvariant().Equals("categ2")) {
               line.Replace("c", "[" + string.Format("{0:0,#}", a.LsvLcFact / 1000) + "]"); }
            else if (a.Segment.ToLowerInvariant().Equals("categ3")) {
               line.Replace("z", "[" + string.Format("{0:0,#}", a.LsvLcFact / 1000) + "]"); } 
            else {
               line.Replace("e", "[" + string.Format("{0:0,#}", a.LsvLcFact / 1000) + "]"); }
          }
 .....
最后,我希望你明白我在做什么,问题是:
有没有一个工具可以用来不生成精心编制的消息正文?

我有一个VB应用程序,可以发送带有HTML负载的消息,但它不使用AlternateView功能

Dim mail As New MailMessage(fromUser.Email, toUser.Email)
mail.Subject = subject
mail.IsBodyHtml = True
mail.Body = message

对于那些无法读取HTML负载的电子邮件客户端,最好使用AlternateView功能,但您的代码无法真正使用它,因为您只提供了一条HTML消息。如果您确实设法让AlternateView功能在这里工作,任何无法读取HTML的客户端都会看到HTML标记,而不仅仅是简单的消息文本。要使其真正起作用,我认为您需要同时提供文本和HTML电子邮件正文。

我接受@Jim Mischel的建议。

我认为您正在寻找邮件合并功能。看看
Dim mail As New MailMessage(fromUser.Email, toUser.Email)
mail.Subject = subject
mail.IsBodyHtml = True
mail.Body = message