VB スクリプトを使用して複数の確認メールを送信する SSIS パッケージを作成しています。確認メールの 1 つには、接続マネージャーの 1 つからのサーバーの名前が必要です。次のことを行うスクリプトがあります。
Public Sub Main()
'------------- Set Vriables
Dim htmlMessageTo As String = _
Dts.Variables("Email_To").Value.ToString
Dim htmlMessageCC As String = _
Dts.Variables("Email_CC").Value.ToString
Dim htmlMessageFrom As String = _
Dts.Variables("Email_From").Value.ToString
Dim ServerAConnectionString As String = _
DirectCast(Dts.Connections("ServerA").AcquireConnection(Dts.Transaction), String)
Dim smtpConnectionString As String = _
DirectCast(Dts.Connections("Mail1").AcquireConnection(Dts.Transaction), String)
Dim smtpServerStr As String = _
smtpConnectionString.Split(New Char() {"="c, ";"c})(1)
Dim smtpServer As New SmtpClient(smtpServerStr)
Dim myMail As New MailMessage
With myMail
.From = New MailAddress(htmlMessageFrom)
.To.Add(htmlMessageTo)
If Len(htmlMessageCC) > 0 Then
.CC.Add(htmlMessageCC)
End If
.IsBodyHtml = True
.Subject = "The process failed for server " & ServerAConnectionString
.Body = "The process failed for server " & ServerAConnectionString
End With
smtpServer.Send(myMail)
Dts.TaskResult = ScriptResults.Success
End Sub
ServerA のサーバー名だけを取得しようとしているところです。接続マネージャー Mail1 は、私が使用している SMTP サーバーです。他の文字列ではすべて正常に機能していますが、この特定の文字列ではエラーが発生します。接続文字列を取得できると思いますが、それを解析するのに十分な VB を知りません。接続オブジェクトに入り、サーバー名のプロパティを表示する方法があることを願っていますが、見つけることができませんでした。