使用SSDT for Visual Studio 2013使用SmtpClient类通过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 :(得分:0)
首先,检查您的变量名称(和案例)vFrom
,vTo
,vEnvNameToSubject
,因为它们区分大小写。
第二次,请尝试以另一种方式连接这些字符串(使用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