2017-07-13 85 views
1

我有要求將發票作爲附件發送給客戶。 enter image description here將文件動態添加到SSIS中的電子郵件中

如上圖所示,數據庫中的表格包含客戶名稱和附件名稱(包含名稱)。我需要遍歷這張表併發送附件給有關客戶。這些相同的附件保存在一個文件夾中。請幫助我一個方法。

+0

爲什麼要使用SSIS?您可以使用存儲過程執行此操作。 –

+0

附件將在文件系統中 –

回答

1

正如Alleman指出的那樣,sp_send_dbmail是完成任務的最佳選擇。唯一需要分配的權限是DatabaseMailUser數據庫角色msdb數據庫。

但是,如果你覺得它需要通過SSIS解決。下面是需要遵循的步驟 -

  1. 創建一個對象變量說objInvoiceAttachmentList和以下三個變量 - sCustomerName,sAttachmentFullFilePath,sMailId

  2. 使用「執行SQL任務」,並運行一個查詢來獲取列表客戶數據如下。將結果集設置爲「完整結果集」。在「ResultSet」選項卡中將其分配給上面的對象變量。 (我假設你有一個名爲MailId爲您的客戶列)從dbo.InvoiceAttachments

  3. 使用 'for each循環容器'

    選擇名稱,附件,MailId。在'Collection'中將枚舉器設置爲'Foreach ADO Enumerator',並將集合變量設置爲objInvoiceAttachmentList。在'變量映射'選項卡中,按查詢順序分配三個變量。

  4. 在foreach循環任務中使用'發送郵件任務'。轉到「表達式」並使用適當的有效SMTP連接設置適當的變量。

+0

非常感謝。這對我有效。 –

0

您不需要使用SSIS。事實上,SSIS實際上並不是一個很好的工具。

sp_send_dbmail可以從文件系統發送附件。使用@file_attachments參數。

1

在SSIS中很容易。

  • 獲取文件名中的變量SSIS
  • 打開,然後發送郵件任務去表達。
  • 然後您可以將FileAttachment屬性設置爲以上變量。
相關問題