操作系统是windows 2003
邮件程序是outlook 2003
已在控制面板—邮件处设置好配置文件,
但是登陆sql 点开支持服务的sql邮件右键属性没有看到我之前设置好的配置文件,我手工输入了配置文件的名字,点击测试出现了以下提示 “错误 18025:xp_test_mapi_profile : 由于邮件错误0x80040111而失败”
上网搜索了很多,也看到有人遇到过这问题,但都是没有明确的给出问题所在,问题不了了,希望在这里得到解答,谢谢!!

解决方案 »

  1.   

    补充一下,如果我直接点击确定,系统会提示在服务器上找不到MAPI配置文件…………
      

  2.   

    转前言  
            昨天花了一個下午的時間研究SQL Mail(你別笑,還真的有點煩),現在終於把這東東搞定了。有感於前人(包括MS的Help文件)對其中的一些配置細節寫得不夠詳盡,這裡我再做一回好人,把它寫出來,以免後人走一些不必要的彎路。  
    概要         本篇文章詳細描述了如何正確的配置SQL Server和郵件客戶端以使SQL Mail能夠正常工作。 
            SQL Mail 允许 SQL Server 通过与受支持的邮件服务器建立客户端连接来发送和接收电子邮件。要使 SQL Mail 能够正常工作,您必须拥有一个可用的邮件帐户,並且安裝有 SQL Server的计算机上還必须安装并正确配置了符合 SQL Server 邮件应用程序编程接口 (MAPI) 标准的邮件客户端,如 Microsoft Outlook、Microsoft Exchange 客户端等。 
            由於我的電腦上未裝有Ms Exchange,所以下文中只描述如何使用 Internet 邮件服务器设置 SQL Mail。 同時由於我用的是繁體版,下文中各描述之術語會與簡體略有不同。 
    實驗環境 
            操作系統:Windows 2000 Professional SP4 繁體版 
            數據庫:SQL Server 2000 
            郵件客戶端:Microsoft Outlook 2000  SQL Mail配置步驟 
            1、安裝SMTP虛擬服務器 
                    首先檢測您的電腦上是否安裝有SMTP虛擬服務器,打開IIS看看,如果沒有,請用WINDOWS的安裝光盤安裝。當然也可以用其它的SMTP,但不推薦。         2、安裝並設置Microsoft Outlook郵件客戶端 
                    注意這裡是Microsoft Outlook 2000(不是Outlook Express,並且一定要2000版),如沒有安裝請用Office光盤進行安裝。 
                    安裝成功之後,打開Outlook,第一次運行的時候會出現“電子郵件選項”響導窗體,如果不是第一次運行請點擊“工具”->“選項”->“電子郵件服務”->“重新設定Mail支援”。在彈出的窗體上,選擇“公司或工作群組”(不要選擇“Internet”,如果你之前用的是Internet,那麼請注意,這裡改變選項會造成所有郵件和帳戶信息丟失,請先做備份),按“下一步”之後,會彈出警告窗,如果是第一次使用或已做好備份,請按“是”,關閉並重新啟動Outlook。 
                    重新啟動Microsoft Outlook,在重新配置後(可能需要Office安裝光盤),會彈出“收件匣安裝精靈”響導窗,點擊其中的“Internet電子郵件”->“下一步”,出現“設定檔名稱”,這裡我們填入“SQL mail”(當然您也可以用其它您喜歡的名稱),點擊“下一步”後會出現“安裝郵件帳號”按鈕,點擊進行設置(這裡設置和Outlook Express一樣,不再講述)。設置完之後會出現建立“個人資料夾”選項,用默認的即可,然後點擊“下一步”就OK了。 
                    建立完成之後一定要測試確保能夠正確傳送和接收郵件,否則不能保證後續動作能夠成功。         3、設定Microsoft Outlook 2000為默認電子郵件客戶端 
                    如果您不能確定Outlook 2000是否為默認客戶客戶端,請打開IE,點擊“工具”->“選項”->“程序”,查看“電子郵件”選項框中出現的是否為“Outlook 2000”,如果不是請改過來。         4、設定SQL Server啟動帳戶 
                    如果您之前用的是SQL Server系統帳戶“SA”來啟動SQL Server和SQL Server Agent的,須進行如下步驟: 
                    (1)查看您登錄Windows系統的帳戶名,假如是“Administrator”; 
                    (2)打開“控制台”,雙擊“系統管理工具”->“服務”,在其中找到“MSSQLSERVER”,雙擊打開內容窗體,選擇“登入”頁,點擊“這個帳戶”,輸入您上面假設的用戶名,格式為“./Adminstrator”(如果是域帳戶,請用domainname/username的形式,如micro/peter),如有密碼請輸入密碼。然後用同樣的方式設定“SQLSERVERAGENT”的內容。 
                    (3)停止並重新啟動以上兩個服務(雖然這不是必須但是有必要),如果未能啟動成功,那麼請檢查您的帳號密碼是否正確。         5、設定SQL Mail 
                    打開“企業管理器”,展開您的“SQL Server群組”->“支援服務”,在“SQL Mail”上點擊鼠標右鍵,選擇菜單上的“內容”,在彈出窗體上的“設定名稱”中如果出現了你在Outlook中配置的配置文件名(我上面的是SQL mail),那麼恭喜,您已經成功了一大半了。 
                    選擇您的設定檔名稱,點擊“測試”,如果提示信息為錯誤,那麼請檢查以上所做步驟,或查看幫助文檔。 
            通過以上步驟,相信您的SQL Mail也能成功的配置起來,如果不能,請提出來共同探討失敗之原因所在,如要了解更多,請參看:http://search.microsoft.com/search/results.aspx?view=zh-cn&st=a&na=81&qu=sql%20mail 。 
      

  3.   

    SQL Mail應用 
            配置了SQL Mail,到底怎麼用,有什麼用呢?以下篇章將做進一步的詳述。 
    1、擴展存儲過程xp_sendmail 
            在SQL Server的master數據庫中,提供了一個叫xp_sendmail的擴展存儲過程,利用該過程,我們就可以從SQL Server中發送我們的SQL Mail了。有關xp_sendmail定義和說明如下: 
    xp_sendmail {[@recipients =] 'recipients [;n]'}  
    [,][@message =] 'message']  
    [,][@query =] 'query']  
    [,][@attachments =] attachments]  
    [,][@copy_recipients =] 'copy_recipients [;n]' 
    [,][@blind_copy_recipients =] 'blind_copy_recipients [;n]' 
    [,][@subject =] 'subject'] 
    [,[@type =] 'type']  
    [,][@attach_results =] 'attach_value'] 
    [,][@no_output =] 'output_value']  
    [,][@no_header =] 'header_value']  
    [,][@width =] width]  
    [,][@separator =] 'separator']  
    [,][@echo_error =] 'echo_value']  
    [,][@set_user =] 'user']  
    [,][@dbuse =] 'database'] 
     
    /**//* 
    其中@recipients是必需的 
     
    参数说明: 
     
    参数 说明  
    @recipients 收件人,中间用逗号分开  
    @message 要发送的信息  
    @query 确定执行并依附邮件的有效查询,除触发器中的插入表及删除表外,此查询能引用任何对象  
    @attachments 附件  
    @copy_recipients 抄送  
    @blind_copy_recipients 密送  
    @subject 标题  
    @attach_results 指定查询结果做为附件发送  
    @no_header 不发送查询结果的列名  
    @set_user 查询联接的用户名,默认为Guset  
    @dbuse 查询所用的数据库,默认为缺省数据库  
    */ 
            有了上面的描述,聰明的您應該知道怎麼利用xp_sendmail發送郵件了吧,這裡舉一下例子以便加深理解。 
    declare @email_subject varchar(100), 
    @email_content varchar(4000), 
    @email_recipients varchar(50) 
     
    set @email_subject='測試郵件' 
    set @email_recipients='[email protected]
    set @email_content='這是一封測試郵件,請勿回復!' 
     
    exec master.dbo.xp_sendmail @recipients=@email_recipients,@subject=@email_subject,@message=@email_content 
     
    /**//*將這段程序復制到SQL查詢分析器中,按“執行查詢”,稍候等到出現“發送郵件成功”字樣的信息後,收件者便可在outlook中收到此封郵件了。*/