【发布时间】:2017-02-06 00:54:02
【问题描述】:
我有一个自动调用电子邮件的系统。 我想做的是当今天是星期五的系统陷阱时我想创建一个 一封电子邮件中的不同表格。
到目前为止,我的系统每天可以调用一封电子邮件。
这就是我想要实现的目标。
例如今天是星期一 系统将发送:
“周二餐桌到期产品清单”(与周二至周四相同)
星期二 - “星期三到期产品清单”
星期三 - “星期四到期产品列表”
星期四 - “星期五到期产品列表”
如果当天是星期五,我想通过电子邮件发送 3 天的到期产品列表,如下所示:
以下是周六至周一到期的产品列表。 (每天只在一封电子邮件中提供不同的表格)像这样:
到目前为止,我的系统可以每天发送电子邮件。我不知道我将如何实现 星期五电子邮件爆炸的输出。
这是我目前所拥有的:
我创建了两个不同的子类。我的一个子类是周一至周四的电子邮件设置 另一个是周五的电子邮件设置,由 3 天不同的表格组成。
Sub EmailMondayThursday
Dim ds As New DataSet
Dim cmd As New SqlCommand
Dim dt As New DataTable
Dim adp As New SqlDataAdapter
Dim c As New SqlConnection("myconnectionhere")
Dim emaildate As String
emaildate = DateTime.Today.AddDays(1).Date.ToString("D")
cmd.Connection = c
cmd.CommandText = "sp_progspot_monitor"
cmd.Parameters.AddWithValue("@prdname", "%")
cmd.Parameters.AddWithValue("@prdcde", "%")
cmd.Parameters.AddWithValue("@prdfrdate", Date.Today.AddDays(1))
cmd.Parameters.AddWithValue("@prdtodate", Date.Today.AddDays(1))
cmd.Parameters.AddWithValue("@cost", "%")
cmd.CommandType = CommandType.StoredProcedure
adp.SelectCommand = cmd
adp.Fill(ds)
Dim dv As New DataView(ds.Tables(0))
Dim dvfilter As DataTable = dv.ToTable(True, {"teledte"})
Dim dt2 As New DataTable
For Each dtrow As DataRow In dvfilter.Rows
dv.RowFilter = "Total_Load < Potential_Load"
dt2 = dv.ToTable(False, {"Date", "Prouduct Name", "Product Code", "Total Sales"})
Next
Dim builder As New StringBuilder
builder.Append("<!DOCTYPE html><html>")
builder.Append("<head></head>")
builder.Append("<table>")
builder.Append("<tr>")
builder.Append("<th>Date</th>")
builder.Append("<th>Product Name</th>")
builder.Append("<th>Product Code</th>")
builder.Append("<th>Total Sales</th>")
builder.Append("<tr>")
builder.Append("</table>")
builder.Append("</html>")
For Each row As DataRow In dt2.Rows
builder.Append("<tr>")
Dim i As Integer
i = 1
For Each col As DataColumn In dt2.Columns
builder.Append("<td class=""" & i & """>" & row(col).ToString + " " & "</td>")
i = i + 1
Next
builder.Append("</tr>")
builder.AppendLine()
Next
builder.Append("</tbody>")
builder.Append("</table>")
setemail("myemail@yahoo.com", "pass", builder.ToString)
结束子
这是我的 FridayEmail 子类
Dim ds As New DataSet
Dim cmd As New SqlCommand
Dim dt As New DataTable
Dim adp As New SqlDataAdapter
Dim c As New SqlConnection("myconnectionhere")
Dim emaildtefrm As String
dim emaildteto as String
emaildtefrm = DateTime.Today.AddDays(1).Date.ToString("D")
emaildteto = DateTime.Today.AddDays(3).Date.ToString("D")
cmd.Connection = c
cmd.CommandText = "sp_progspot_monitor"
cmd.Parameters.AddWithValue("@prdname", "%")
cmd.Parameters.AddWithValue("@prdcde", "%")
cmd.Parameters.AddWithValue("@prdfrdate", Date.Today.AddDays(1))
cmd.Parameters.AddWithValue("@prdtodate", Date.Today.AddDays(3))
cmd.Parameters.AddWithValue("@cost", "%")
cmd.CommandType = CommandType.StoredProcedure
adp.SelectCommand = cmd
adp.Fill(ds)
Dim dv As New DataView(ds.Tables(0))
Dim dvfilter As DataTable = dv.ToTable(True, {"teledte"})
Dim dt2 As New DataTable
For Each dtrow As DataRow In dvfilter.Rows
dv.RowFilter = "Total_Load < Potential_Load"
dt2 = dv.ToTable(False, {"Date", "Prouduct Name", "Product Code", "Total Sales"})
Next
Dim builder As New StringBuilder
builder.Append("<!DOCTYPE html><html>")
builder.Append("<head></head>")
builder.Append("<body>")
builder.Append("<p> Below is the list of expiry product from " & emaildtefrm & "to" & emaildteto & "</p>")
builder.Append("<table>")
builder.Append("<tr>")
builder.Append("<th>Date</th>")
builder.Append("<th>Product Name</th>")
builder.Append("<th>Product Code</th>")
builder.Append("<th>Total Sales</th>")
builder.Append("<tr>")
builder.Append("</table>")
builder.Append("</html>")
For Each row As DataRow In dt2.Rows
builder.Append("<tr>")
Dim i As Integer
i = 1
For Each col As DataColumn In dt2.Columns
builder.Append("<td class=""" & i & """>" & row(col).ToString + " " & "</td>")
i = i + 1
Next
builder.Append("</tr>")
builder.AppendLine()
Next
builder.Append("</tbody>")
builder.Append("</table>")
setemail("myemail@yahoo.com", "pass", builder.ToString)
此代码用于捕获今天的日期,以便当系统知道这一天时,它会根据条件有条件地发送电子邮件。
Protected Sub ImageButton1_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) 处理 ImageButton1.Click
Dim daytoday As String = DateTime.Today.DayOfWeek
If daytoday.ToString = "1" or Then
EmailMondayThursday()
ElseIf daytoday.ToString = "4" Then
MsgBox("Thursday")
ElseIf daytoday .ToString = "5" Then
ProgSpotEmailFriday()
End If
End Sub
【问题讨论】:
标签: html asp.net vb.net outlook