1

各セルに変数値を持つテーブルを含むメールを送信する必要があります。これは、任意の方法 (電子メール経由の html、Excel/Word テーブルなど) を使用して行うことができます。唯一の問題は、Emailer プログラムと System.Net.Mail インポートの制限によるもので、文字列でなければなりません。

これが私がこれまでに持っているものです:

Imports DelayEmailer.DelayTrackerWs
Imports System.Configuration

Public Class DelayEmailer
Public Shared Sub Main()

    Dim ws As New DelayTrackerWs.DelayUploader
    Dim delays As DelayTrackerWs.Delay()
    Dim emailer As New Emailer()
    Dim delaystring As String

    delays = ws.SearchDelaysDate(DelayTrackerWs.AreaEnum.QT, DelayTrackerWs.UnitEnum.QT, Now.AddDays(-1), Now)

    delaystring = "Delays" & vbNewLine
    delaystring &= "Facilty  Start Time       Status  Category      Reason      Comment"
    For i = 0 To delays.Length - 1
        delaystring &= vbNewLine & delays(i).Facility & "   "
        delaystring &= FormatDateTime(delays(i).DelayStartDateTime, DateFormat.ShortDate) & " "
        delaystring &= FormatDateTime(delays(i).DelayStartDateTime, DateFormat.ShortTime) & " "
        'delaystring &= delays(i).DelayDuration & " "
        delaystring &= delays(i).Status & " "
        delaystring &= delays(i).CategoryCode & " "
        delaystring &= delays(i).ReasonCode & " "
        delaystring &= delays(i).Comment
    Next

    emailer.Send(ConfigurationManager.AppSettings("EmailList"), "delays", delaystring)

End Sub

ご覧のとおり、現在、各 delays(i) の値が同じである場合に連結された一連の文字列が並んでいます。もう 1 つの問題は、これをモバイル デバイスで簡単に表示できるようにする必要があることです。ここのテーブルはこれを修正する必要があります。

4

1 に答える 1

4

MailMessageおよびSmtpClientクラスを使用して .NET から HTML 電子メールを送信し、電子メール テンプレートを として作成し、のプロパティを true にstring設定できます。MailMessageIsBodyHtml

Dim strHeader As String = "<table><tbody>"
Dim strFooter As String = "</tbody></table>"
Dim sbContent As New StringBuilder()

For i As Integer = 1 To rows
    sbContent.Append("<tr>")
    For j As Integer = 1 To cols
        sbContent.Append(String.Format("<td>{0}</td>", YOUR_TD_VALUE_STRING))
    Next j
    sbContent.Append("</tr>");
Next i

Dim emailTemplate As String = strHeader & sbContent.ToString() & strFooter
...
于 2013-10-18T20:15:31.293 に答える