在ASP.Net中发送邮件,并使用Excel附件连接到SQL Server

我有两个表A和B,A有两列“名称”和“电子邮件地址”,B有很多列和行,一列有名称,所以这两个表之间的关系是“名称”,因此对于1表A中的名称将在表B中有几行。

我想要实现的是,我需要一个邮件被触发到表A中的每个名字,并附上一个Excel文件,它将包含表B中的相应人员数据。考虑表A有100个“名称”,然后是100邮件应该被触发到相应的电子邮件地址,每封邮件都带有相应的Excel附件,其中包含表B中相应的“名称”数据。

例如:表A有BOBMIKE

Bob将收到一封带有Excel附件的邮件,该邮件将显示表B中的所有BOB数据.Mike将收到一封邮件,附件中的数据在表B中。

附件甚至可以显示为邮件中的表格,因为不会有超过25行的数据。

我已经在Outlook中的VBA中工作,它将创build一个Excel文件并将其存储在一个文件夹中,获取邮件模板,将Excel附加到邮件中,并将其放在邮箱的发件箱中,以便在生成所有100封邮件时,邮件开始被触发。 现在我正在尝试在ASP.Net中实现相同的function,然后将其自动化,以便在特定date的特定时间执行。

下面是我使用相同的VBA代码。

 Sub testing() Dim OutApp As Object Dim OutMail As Object Dim i As Integer Dim conn As New ADODB.Connection Dim rec As New ADODB.Recordset Dim rec1 As New ADODB.Recordset Dim Email_ID As String Dim Table As String Email_ID = "" conn.Open "DSN=testing" Sql = "select name,EmailAddress from Table A" rec.Open Sql, conn While Not rec.EOF Sql1 = "select name ,id ,model, stagename,date, from Table B where owneridname ='" & rec.Fields(0)&"'" rec1.Open Sql1, conn Dim ExlApp As Object strFldr = "C:\Data\" Set ExlApp = CreateObject("Excel.Application") ExlApp.Application.Visible = False ExlApp.Workbooks.Add.SaveAs (strFldr & rec.Fields(0) & "Report.xlsx") ExlApp.Workbooks.Open strFldr & rec.Fields(0) & "Report.xlsx" ExlApp.ActiveWorkbook.Sheets(1).Activate ExlApp.cells(1, 1) = "Name" ExlApp.cells(1, 2) = "id" ExlApp.cells(1, 3) = "Model" ExlApp.cells(1, 4) = "Stagename" ExlApp.cells(1, 5) = "Date" ExlApp.cells(2, 1).CopyFromRecordset rec1 ExlApp.cells.EntireColumn.AutoFit ExlApp.ActiveWorkbook.Save ExlApp.ActiveWorkbook.Close rec1.Close Set OutApp = CreateObject("Outlook.Application") Set OutMail = Application.CreateItemFromTemplate("C:\Data\sampletempl\sample.oft") On Error Resume Next With OutMail .SentOnBehalfOfName = "Bigboss@boss.com" .To = rec.Fields(1) .CC = "Boss@boss.com" .Attachments.Add strFldr & rec.Fields(0) & "Report.xlsx" .Subject = "Report for the week" .Body = "Dear " & rec.Fields(0) & "," & vbCr & OutMail.Body & vbclf & Table .Send End With On Error GoTo 0 Set ExlApp = Nothing Set OutMail = Nothing Set OutApp = Nothing rec.MoveNext Wend rec.Close End Sub 

请帮我解决这个问题,我有单独的.net代码来发送邮件和创buildExcel文件,但不知道如何实现我的逻辑。