0

クエリの結果(データセット内)をユーザーに電子メールで送信するプログラムを作成しようとしています...私のコードは次のとおりです。

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.Paid_Out_TbTableAdapter.Fill(Me.dataset.Paid_Out_Tb)
        Me.ReportViewer1.RefreshReport()
        Try
            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            SmtpServer.Credentials = New  _
            Net.NetworkCredential("Bob", "password")
            SmtpServer.Port = 25
            SmtpServer.Host = "server"
            mail = New MailMessage()
            mail.From = New MailAddress("email@email.com")
            mail.To.Add("Email@email.com")
            mail.Subject = "Test Mail"
            mail.Body = (Me.DataSet.Paid_Out_Tb.ToString)
            SmtpServer.Send(mail)
            MsgBox("mail send")
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

メール本文を送信する以外はすべて機能します...結果を本文としてメールに送信するにはどうすればよいですか?

4

2 に答える 2

2

LinqおよびVBの新しいインラインxmlリテラル機能を使用して、htmlを生成できます。これを試して:

Dim payOuts = _
<html>
    <body>
        <table>
            <tr><th>My First Column Header</th><th>My Second Column Header</th></tr>
            <%= From paidOut In Me.DataDeliveryServiceDataSet.Paid_Out_Tb.AsEnumerable _
                Select <tr>
                            <td><%= paidOut.MyFirstColum %></td>
                            <td><%= paidOut.MySecondColum %></td>
                       </tr> %>
        </table>
    </body>
</html>

mail.IsBodyHtml = True 
mail.Body = payouts.ToString

System.Data.DataSetExtensions.dllへの参照がまだ存在しない場合は、プロジェクトに必ず含めてください。Imports System.Linqクラスにも必要です。良い説明については、LINQおよびXMLリテラルを使用してDataTableをHTMLテーブルのブログ投稿に変換するを参照してください。

于 2012-07-16T17:45:36.377 に答える
1

データセットの行を循環して、電子メールで送信するデータを抽出する必要があります。次のステートメントを追加することにより、HTMLを使用してフォーマットできます。

mail.IsBodyHtml = True
于 2012-07-16T17:08:39.080 に答える