View a markdown version of this page

在 Amazon RDS for SQL Server 上使用 Database Mail - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon RDS for SQL Server 上使用 Database Mail

您可以在 SQL Server 資料庫執行個體上使用 Database Mail,從您的 Amazon RDS 傳送電子郵件訊息給使用者。訊息可包含檔案和查詢結果。Database Mail 包含下列元件:

  • 設定和安全性物件 – 這些物件會建立設定檔和帳戶,並儲存在 msdb 資料庫中。

  • 傳訊物件 – 這些物件包括用來傳送訊息的 sp_send_dbmail 預存程序,以及保留訊息相關資訊的資料結構。這些物件會儲存在 msdb 資料庫中。

  • 記錄和稽核物件 – Database Mail會將記錄資訊寫入 msdb 資料庫和 Microsoft Windows 應用程式事件記錄檔。

  • Database Mail可執行檔DatabaseMail.exe 會從 msdb 資料庫中的佇列讀取,並傳送電子郵件訊息。

RDS 支援 Web、標準和企業版上的所有 SQL Server 版本的 Database Mail。

限制

在 SQL Server 資料庫執行個體上使用 Database Mail 時將適用下列限制:

  • Database Mail 不支援 SQL Server Express 版本。

  • 不支援修改 Database Mail 組態參數。若要查看預先設定的值 (預設值),請使用 sysmail_help_configure_sp 預存程序。

  • 不完全支援檔案附件。如需更多詳細資訊,請參閱 使用檔案附件

  • 檔案附件大小上限為 1 MB。

  • Database Mail 需要在多可用區域資料庫執行個體上設定其他組態。如需更多詳細資訊,請參閱 異地同步備份部署的考量

  • 不支援將 SQL Server 代理程式設定為傳送電子郵件訊息給預先定義的運算子。

適用於 Database Mail 的 Amazon RDS 預存程序和函數

Microsoft 提供使用 Database Mail 的預存程序,例如建立、列出、更新和刪除帳號和設定檔。此外,RDS 還提供適用於 Database Mail 的預存程序和函數,如下表所示。

程序/函數 描述
rds_fn_sysmail_allitems 顯示已傳送的訊息,包括其他使用者提交的訊息。
rds_fn_sysmail_event_log 顯示事件,包括其他使用者提交訊息的事件。
rds_fn_sysmail_mailattachments 顯示附件,包括其他使用者提交訊息的附件。
rds_sysmail_control 啟動和停止郵件佇列 (DatabaseMail.exe 處理程序)。
rds_sysmail_delete_mailitems_sp 從 Database Mail 內部表格刪除所有使用者傳送的電子郵件訊息。

使用檔案附件

在 SQL Server 上,來自 RDS 的 Database Mail 訊息不支援下列檔案附件副檔名:.ade、.adp、.apk、.appx、.appxbundle、.bat、.bak、.cab、.chm、.cmd、.com、.cpl、.dll、.dmg、.exe、.hta、.inf1、.ins、.isp、.iso、.jar、.job、.js、.jse、.ldf、.lib、.lnk、.mde、.mdf、.msc、.msi、.msix、.msixbundle、.msp、.mst、.nsh、.pif、.ps、.ps1、.psc1、.reg、.rgs、.scr、.sct、.shb、.shs、.svg、.sys、.u3p、.vb、.vbe、.vbs、.vbscript、.vxd、.ws、.wsc、.wsf 和 .wsh。

Database Mail 會使用目前使用者的 Microsoft Windows 安全性內容來控制檔案的存取。使用 SQL Server 身分驗證登入的使用者無法使用 @file_attachments 預存程序的 sp_send_dbmail 參數附加檔案。Windows 不允許 SQL Server 將登入資料從遠端電腦提供給另一台遠端電腦。因此,從非執行 SQL Server 的電腦執行命令時,Database Mail 無法從網路共用附加檔案。

不過,您可以使用 SQL Server 代理程式任務來附加檔案。如需有關 SQL Server 代理程式的詳細資訊,請參閱 使用 SQL Server Agent for Amazon RDS 和 Microsoft 文件中的 SQL Server 代理程式

異地同步備份部署的考量

當您在多可用區域資料庫執行個體上設定 Database Mail 時,組態不會自動傳播至次要可用區。建議將多可用區域執行個體轉換為單一可用區執行個體、設定 Database Mail,然後將資料庫執行個體轉換回多可用區域。然後,主節點和次要節點均設有 Database Mail 組態。

如果您從已設定 Database Mail 的多可用區域執行個體建立僅供讀取複本,則複本會繼承該組態,但不需要 SMTP 伺服器的密碼。使用密碼更新 Database Mail 帳戶。

移除 SMTP (連接埠 25) 限制

根據預設, 會 AWS 針對 RDS for SQL Server 資料庫執行個體封鎖 SMTP (連接埠 25) 上的傳出流量。這是為了根據彈性網路介面擁有者的政策防止垃圾郵件。如有需要,您可以移除此限制。如需詳細資訊,請參閱如何從我的 Amazon EC2 執行個體或 Lambda 函數中移除連接埠 25 的限制?