2017-03-10 125 views
2

使用SSDT for Visual Studio 2013,我使用SmtpClient類通過ssis腳本發送電子郵件通知。SSIS腳本任務問題

 public void Main() 
    { 
     SmtpClient v_EmailClient; 
     string v_From = Dts.Variables["User::vFrom"].Value.ToString(); 
     string v_To = Dts.Variables["User::vTo"].Value.ToString(); 
     string v_EnvNameToSubject = Dts.Variables["User::vEnvNameToSubject"].Value.ToString(); 

     MailMessage v_EmailMessage = new MailMessage(v_From, v_To); 
     v_EmailMessage.IsBodyHtml = true; 
     v_EmailMessage.Subject = v_EnvNameToSubject + "SSIS email notification"; 
     //Concatenation of variable with the standard message does not work 

     v_EmailMessage.Body = "Message text"; 
     v_EmailClient = new SmtpClient("SmtpServer"); 
     v_EmailClient.UseDefaultCredentials = true; 
     v_EmailClient.Send(v_EmailMessage); 

     Dts.TaskResult = (int)ScriptResults.Success; 
    } 

當我嘗試連接變量v_EnvNameToSubject與標準主題文本不起作用。我嘗試使用try catch塊來找出實際的錯誤信息,但這也沒有幫助。

+0

返回什麼類型的錯誤?它是否僅在您的主題中插入:「SSIS電子郵件通知」?在你的例子中取消變量vEnvNameToSubject ... –

+0

我得到非常通用的DTS腳本任務:運行時錯誤彈出。我嘗試使用try catch塊,甚至沒有幫助。所以,我不確定究竟是什麼讓它失敗。 – user25407

+0

那個通用的錯誤,不尊重try catch通常意味着你拼錯了你的變量或者沒有正確地引用第三方工具。嘗試註釋掉dts.variable ....行,看看你是否過去了這個錯誤。 –

回答

0

首先,請檢查您的變量名稱(和案件)vFromvTovEnvNameToSubject因爲他們是區分大小寫的。

,嘗試串聯這些字符串的另一種方式(使用String.Concat()功能或使用stringbuilder

System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
sb.AppendLine(v_EnvNameToSubject); 
sb.AppendLine("SSIS email notification"); 
v_EmailMessage.Subject = sb.ToString(); 

或者

v_EmailMessage.Subject = String.Concat(v_EnvNameToSubject,"SSIS email notification") 

,請檢查您的變量範圍,並將它們添加到腳本任務ReadOnly Variables