1 利用发送邮件服务
详细设置如上图。但是邮件发送服务器只能为公司内部邮箱或
在SSIS服务器上安装一个SMTP服务。如网易163由于不提供填写用户名和密码信息,不能使用。
2 利用脚本任务发送公司内部邮箱
以下代码用的是公司内部邮箱,认证方式为CredentialCache.DefaultNetworkCredentials
Imports System
Imports System.Data
Imports System.Math
Imports System.Net.Mail
Imports System.Net
Imports Microsoft.SqlServer.Dts.Runtime
Public Class ScriptMain
Public Sub Main()
'
' Add your code here
'
Dim myHtmlMessage As MailMessage
Dim mySmtpClient As SmtpClient
myHtmlMessage = New MailMessage("qiangguo@test.com", "qiangguo@test.com", "Subject", "body")
mySmtpClient = New SmtpClient("mail.test.com")
mySmtpClient.Credentials = CredentialCache.DefaultNetworkCredentials
mySmtpClient.Send(myHtmlMessage)
Dts.TaskResult = Dts.Results.Success
End Sub
End Class
3 利用脚本任务发送网易163邮箱
以下代码用的是网易163邮箱,认证方式为System.Net.NetworkCredential("用户名", "密码")
Imports System
Imports System.Data
Imports System.Math
Imports System.Net.Mail
Imports System.Net
Imports Microsoft.SqlServer.Dts.Runtime
Public Class ScriptMain
Public Sub Main()
'
' Add your code here
'
Dim myHtmlMessage As MailMessage
Dim mySmtpClient As SmtpClient
myHtmlMessage = New MailMessage("xxx@163.com", " qiangguo@test.com", "Subject", "body")
mySmtpClient = New SmtpClient("smtp.163.com")
'mySmtpClient.Credentials = CredentialCache.DefaultNetworkCredentials
mySmtpClient.Credentials = New System.Net.NetworkCredential("用户名", "密码")
mySmtpClient.Send(myHtmlMessage)
Dts.TaskResult = Dts.Results.Success
End Sub
End Class
4执行 SQL 任务 发送163邮件
首先要配置sql server 2005 数据库邮件,如利用配置文件为:数据库邮件配置文件(网易163)
如何配置请参加我的另一篇文章:
http://blog.csdn.net/guoqiang1983/archive/2008/05/30/2497547.aspx
sql脚本为:
msdb.dbo.sp_send_dbmail存储过程发送
EXEC msdb.dbo.sp_send_dbmail
@profile_name = '数据库邮件配置文件(网易163)',
@recipients = 'xxx@163.com',
@body = 'ssis 用msdb.dbo.sp_send_dbmail测试发邮件',
@subject = '测试发邮件';
总结:四种方法都可行,遇到问题,想想其它的方法,办法总是有的!如下图所示: