0

次のように構造化されたSQLテーブルがあります

Serial  EMAIL
543     ali@hotmail.com
789     paul@gmail.com
485     paul@gmail.com
654     sam@yahoo.com

そして、ファイル名が次のようなフォルダーにpdfの添付ファイルがあります

Happy 543.pdf
Happy 789.pdf
Happy 485.pdf
Happy 654.pdf

各シリアル番号をファイル名の最後の 3 文字と照合し、その特定の pdf を対応する電子メール アドレスに電子メールで送信します。

テーブルに格納されているテーブルから電子メール アドレスを抽出し、その電子メール アドレスを SENDMAIL タスクTOline式プロパティで使用しました。メールは予定通り。しかし、ファイルを添付する場合、対応するファイルをメールに添付する方法がわかりません。誰か助けてください

4

1 に答える 1

2

あなたのパッケージはこのようなものだと思います

ここに画像の説明を入力

変数を作成する

変数を使用すると、初心者と専門家を区別するのに役立ちます。これは、パッケージにブレークポイントを設定して変数を検査できるという単純な事実のためです。タスクの式の検査についても同じことは言えません。

ここに画像の説明を入力 ご覧のとおり、いくつかの変数が作成されています。

  • foreach ループから入力された CurrentID、String
  • foreach ループから入力された受信者、文字列
  • FolderInput、String、ファイルが存在するベース フォルダー
  • ResultSet、オブジェクト、SQL 実行タスクで入力され、Foreach ループで細断処理される
  • CurrentFile、String は、ファイルへのフル パスを定義します。これは@[User::FolderInput] + "\\Happy " + (DT_WSTR, 3) @[User::CurrentID]+ ".pdf"

Foreach ループが列挙されると、CurrentID と Recipient の値が変化します。CurrentID が変更されたおかげで、私のマッピングは各人に対して更新されるため、メール送信タスクが起動すると、正しいファイルが送信されます。

対処されていません - 動的なファイル名とサブフォルダー。CurrentFile の式は、ファイルが存在することを前提としておりHappy NNN.pdf、NNN が CurrentID 値である場合に常に名前が付けられます。、などを使用できる場合はHap 123.pdf、おそらくスクリプト タスクで、ファイル名の値を取得する作業を行う必要があります。それは別のSOの質問です。Joyous 123.pdfSubfolder\Happy 123.pdf

自分を表現

メール送信タスクの 3 番目のタブには、このタスクの式が表示されます。これは、SSIS ツールキットのすべてのタスクで最も強力なオプションです。ここでは、受信者が変数@[User::Recipient]であり、送信するファイルが[@User::CurrentFile]

ここに画像の説明を入力

1 つ、ここで注意すべきかなり重要なこと。ファイルが存在しない場合、メール送信タスクは失敗します。

于 2013-05-24T21:11:44.133 に答える