日期:2014-05-17  浏览次数:20491 次

sql发送邮件问题?邮件怎么判断他是否发送成功呢?
本帖最后由 tanaichuan 于 2013-08-12 14:45:16 编辑
RT。。。。。

有没有弄过的高手解答下。。。。

判断邮箱是否发送成功不是进入队列中成功。。谢谢!!!
邮件 SQL

------解决方案--------------------
sysmail_allitems (Transact-SQL)
 sysmail_mailattachments (Transact-SQL)
 
sysmail_event_log (Transact-SQL)
 sysmail_sentitems (Transact-SQL)
 
sysmail_faileditems (Transact-SQL)
 sysmail_unsentitems (Transact-SQL)
 
这些表都记录了sql邮件的相关信息

------解决方案--------------------
use msdb
GO

DECLARE @mailitemid INT
EXEC sp_send_dbmail --调用SQL2005的邮件发送的存储过程。
@profile_name = 'mail_first', --邮件配置文件名。--调用发送邮件的存储过程,登录帐号必须有msdb的datamail权限
@recipients ='wangyunliang@yuantel.com',--用来接受邮件的地址
@subject = '标题',
@body = 'Hello,world',
@body_format='text' ,
@file_attachments ='', --附件
@mailitem_id = @mailitemid OUTPUT
SELECT @mailitemid --取得@mailitemid

WAITFOR DELAY '00:00:05' --等5秒后看结果

SELECT
er.log_id AS [LogID],
er.event_type AS [EventType],
er.log_date AS [LogDate],
er.description AS [Description],
er.process_id AS [ProcessID],
er.mailitem_id AS [MailItemID],
er.account_id AS [AccountID],
er.last_mod_date AS [LastModifiedDate],
er.last_mod_user AS [LastModifiedUser]
FROM msdb.dbo.sysmail_event_log er
WHERE mailitem_id = @mailitemid
ORDER BY [LogDate] DESC