2017-07-03 28 views
0

我正在使用SSIS 2008r2中的腳本任務發送電子郵件給收件人的代碼。當所有的地址框都被填充時(To,Cc和Bcc),它可以正常工作,但是當其中一個框爲空/空時,出現錯誤。我想要有這個選項來讓這些盒子爲空。這裏是我工作的代碼:可通過SSIS發送電子郵件中的可空CC和BCC

Public Sub SendMailMessage(_ 
    ByVal From As String, ByVal SendTo As String, _ 
    ByVal SendCc As String, ByVal SendBcc As String, _ 
    ByVal Subject As String, ByVal Body As String, _ 
    ByVal Attachment As String, ByVal IsBodyHtml As Boolean, ByVal Server As String) 

    Dim htmlMessage As MailMessage 
    Dim mySmtpClient As SmtpClient 
    Dim myAttachment As Attachment 
    Dim myBcc As MailAddress = New MailAddress(SendBcc) 
    Dim myCc As MailAddress = New MailAddress(SendCc) 


    htmlMessage = New MailMessage(_ 
     From, SendTo, Subject, Body) 

    myAttachment = New Attachment(Attachment) 
    htmlMessage.IsBodyHtml = IsBodyHtml 
    htmlMessage.Attachments.Add(myAttachment) 
    htmlMessage.CC.Add(myCc) 
    htmlMessage.Bcc.Add(myBcc) 

    mySmtpClient = New SmtpClient(Server) 
    mySmtpClient.Credentials = CredentialCache.DefaultNetworkCredentials 
    mySmtpClient.Send(htmlMessage) 
End Sub 

Public Sub Main() 

    Dim htmlMessageTo As String = _ 
    Replace(Dts.Variables("HtmlEmailTo").Value.ToString, ";", ",") 
    Dim htmlMessageCC As String = _ 
    Replace(Dts.Variables("HtmlEmailCc").Value.ToString, ";", ",") 
    Dim htmlMessageBCC As String = _ 
    Replace(Dts.Variables("HtmlEmailBcc").Value.ToString, ";", ",") 
    Dim htmlMessageFrom As String = _ 
     Dts.Variables("HtmlEmailFrom").Value.ToString 
    Dim htmlMessageSubject As String = _ 
     Dts.Variables("HtmlEmailSubject").Value.ToString 
    Dim htmlMessageBody As String = _ 
     Dts.Variables("HtmlEmailBody").Value.ToString 
    Dim MailBody As String = File.ReadAllText(htmlMessageBody) 
    Dim htmlAttachments As String = _ 
     Dts.Variables("HtmlEmailAttachment").Value.ToString 
    Dim smtpServer As String = _ 
     Dts.Variables("HtmlEmailServer").Value.ToString 


    SendMailMessage(_ 
     htmlMessageFrom, htmlMessageTo, htmlMessageCC, _ 
     htmlMessageBCC, htmlMessageSubject, MailBody, htmlAttachments, _ 
     True, smtpServer) 

    Dts.TaskResult = ScriptResults.Success 

End Sub 
+0

請編輯您的問題以包含錯誤消息的確切文本。 –

回答

3

很簡單:不添加CC或BCC,如果它們是空的 - 看看文檔MailAddressCollection - 它明確指出,ArgumentNullException或ArgumentException的是,如果該值升高是空的或NULL

If Not String.IsNullOrEmpty(myCC) Then 
    htmlMessage.CC.Add(myCc) 
End If 

If Not String.IsNullOrEmpty(myBcc)) Then 
    htmlMessage.Bcc.Add(myBcc) 
End If 

注意:VB語法可能是錯誤的,但這就是主意。

+0

除了'string'應該在VB.NET中是'String'的語法是正確的。很好的答案! –

相關問題