Oracle Application Express 3.1における電子メールの添付ファイルの送信
このチュートリアルでは、Oracle Application Express 3.1で電子メールの添付ファイルを送信できるページの構築方法について説明します。
約45分
このチュートリアルでは、以下のトピックについて説明します。
このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)
注:各手順に関連したスクリーンショットのみをロードして表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 個々のスクリーンショットはクリックすると、非表示になります。
Oracle Application Express 3.1では、Application ExpressメールAPIのAPEX_MAIL.ADD_ATTACHMENTを使用して送信される電子メールに添付ファイルを追加できます。
Oracle Application Express 3.1の新機能に関する詳細は、ここ(英語)で確認してください。
トピック・リストに戻る
このチュートリアルを始める前に以下を確認してください。
| 1. |
Oracle Database 9.2以上がインストールされ、データベースにOracle Spatialが構成されていること。
|
| 2. |
Oracle Application Express 3.1がダウンロードおよび構成されていること。
|
| 3. |
ここからOEHR Sample Objectsパッケージ・アプリケーションをダウンロードして、Oracle Application Express 3.1インスタンスにインポートしていること。
|
| 4. |
このチュートリアルを実行するために必要なファイルを含むapexnf.zipファイルをダウンロードおよび解凍していること。
|
| 5. |
このチュートリアルの前に、『Oracle Application Express 3.1のインタラクティブ・レポートの構築およびカスタマイズ』および『Oracle Application Express 3.1のBLOBデータの定義および表示』チュートリアルを実行する必要があります。
または、Oracle Application Expressのパッケージ・アプリケーションとして、Oracle by Example(OBE)のNew Featuresアプリケーションをインポートできます。 apexnf.zipファイルをダウンロードおよび解凍して、blobobe_packagedapp.sqlパッケージ・アプリケーション・ファイルをインポートしてください。 また、OEHR_EMPLOYEES表を変更して、BLOBデータをロードする必要があります。 PHOTO_LOCディレクトリを作成してファイルを配置するために、dog.gifファイルが格納された場所のパスを指定するようaddblobdata.sqlスクリプトを変更します。スクリプト・ファイルをダウンロードおよび解凍した場所から、SQL*Plusセッションを開いて、次のコマンドを実行します。
connect system
grant create any directory to <workspace name>;
connect <workspace name>
@addblobdata
|
注:アプリケーション番号とページ番号は、スクリーンショットの表示と若干異なる場合があります。
トピック・リストに戻る
添付ファイルのある電子メールをユーザーが送信できる、ページとリージョンを作成します。 以下の手順を実行します。
| 1. |
New Featuresアプリケーション・ページへ移動します。 「Create Page」をクリックします。

|
| 2. |
「Blank Page」をクリックします。
|
| 3. |
「Next」をクリックします。

|
| 4. |
NameにSend Email Attachmentと入力して、「Next」をクリックします。

|
| 5. |
デフォルト値を受け入れて、「Next」をクリックします。
|
| 6. |
「Finish」をクリックします。

|
| 7. |
ページが作成されました。 次に、リージョンを追加する必要があります。 「Edit Page」をクリックします。
|
| 8. |
Regionsの下のCreateアイコン「 」をクリックします。

|
| 9. |
「HTML」アイコンをクリックします。

|
| 10. |
「HTML」アイコンを再度クリックします。

|
| 11. |
TitleにEmail Attachmentと入力して、「Create」をクリックします。

|
| 12. |
ページとリージョンが作成されました。 次の項では、添付ファイルのある電子メールを送信するために、入力する必要があるアイテムを作成します。

|
トピック・リストに戻る
添付ファイルのある電子メールを送信するために必要なすべてのアイテムを作成します。 以下の手順を実行します。
| 1. |
Itemsの下のCreateアイコン「 」をクリックします。

|
| 2. |
複数のアイテムを作成する必要があるので、「Create Multiple Items using Drag and Drop Layout」リンクを選択します。

|
| 3. |
「Create Multiple Items >」をクリックします。

|
| 4. |
Textアイコン「 」を選択して、最初の行にドラッグ・アンド・ドロップします。 Item NameにP<#>_EMAIL、LabelにEmail Addressと入力します。

|
| 5. |
2行目にTextアイコン「 」をドラッグ・アンド・ドロップします。 Item NameにP<#>_FROM、LabelにFromと入力します。

|
| 6. |
次のように残りのアイテムを作成して、「Next」をクリックします。
| アイテムタイプ |
アイテム名 |
ラベル |
| Text |
P<#>_SUBJECT |
Subject |
| Check box |
P<#>_IMAGE |
Attachment Images |
| Textarea |
P<#>_BODY |
Message Body |

|
| 7. |
「Apply Changes」をクリックします。

|
| 8. |
「P<#>_IMAGE」リンクを選択します。

|
| 9. |
「LOV」タブを選択します。

|
| 10. |
添付ファイルとして選択し、電子メールで送信する従業員の画像リストを設定します。 次のLOVの定義を入力して、「Apply Changes」をクリックします。 注:画像列の長さが0ではないということを以下のコードで確認します。該当する場合、画像列からBLOBが選択されます。
select filename||'</br>'||
decode(nvl(dbms_lob.getlength(photo),0),0,null,
'<img src="'||apex_util.get_blob_file_src('P3_PHOTO',employee_id)
||'" height="128" width="128" />') img,
employee_id r
from oehr_employees
where mimetype like 'image%' order by 1

|
| 11. |
すべてのアイテムが定義されました。 次の項では、添付ファイルのある電子メールを受信者に送信するボタンとプロセスを作成します。

|
トピック・リストに戻る
この項で作成されるボタンとプロセスによって、添付ファイルのある電子メールの送信を処理します。 以下の手順を実行します。
| 1. |
Buttonsの下の「Create」アイコンをクリックします。

|
| 2. |
デフォルト値を受け入れて、「Next」をクリックします。

|
| 3. |
「Create a button displayed among this region's items」を選択し、「Next」をクリックします。

|
| 4. |
名前にP<#>_SEND_EMAIL、LabelにSend Email、RequestにEMAILと入力します。 Button Styleに「HTML Button」を選択して、「Create Button」をクリックします。

|
| 5. |
ボタンが作成されました。 これによって、ボタンを押すと起動するプロセスを作成できます。 Page ProcessingのProcessesで「Create」アイコンをクリックします。

|
| 6. |
「PL/SQL」プロセス・カテゴリをクリックします。

|
| 7. |
NameにEMAIL with Attachmentsと入力して、「Next」をクリックします。

|
| 8. |
PL/SQL Page Processリージョンに次のコードを入力します。 注:現在ページ4で作業していない場合、4から現在のページ番号に変更してください。 たとえば、ページ5で作業している場合、P4_IMAGEをP5_IMAGEに変更します。 次に、「Next」をクリックします。
DECLARE l_id number; l_index number; l_vc_arr2 APEX_APPLICATION_GLOBAL.VC_ARR2; BEGIN l_id := APEX_MAIL.SEND( p_to => :P4_EMAIL, p_from => :P4_FROM, p_subj => :P4_SUBJECT, p_body => :P4_BODY); l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE(:P4_IMAGE); FOR i_index IN 1..l_vc_arr2.count LOOP FOR c1 in (select filename, photo, mimetype from oehr_employees
where employee_id = l_vc_arr2(i_index)) loop APEX_MAIL.ADD_ATTACHMENT( p_mail_id => l_id, p_attachment => c1.photo, p_filename => c1.filename, p_mime_type => c1.mimetype); END LOOP c1; END LOOP i_index; COMMIT; END;
このプロセスのPL/SQLコードでは、既存の機能であるAPEX_MAIL.SENDを使用して、メインの電子メールを作成します。ただし、添付ファイルのある電子メールに関連したIDを取得することになります。 コロン区切りの文字列として、:P4_IMAGESに格納されている選択したイメージのIDが、組込みのAPEX_UTIL.STRING_TO_TABLEによって文字列から表に変換され、この表が配列にロードされます。 元表(OEHR_EMPLOYEES)から選択した各イメージの詳細情報を取得します。1つずつ新しいプロシージャ(APEX_MAIL.ADD_ATTACHMENT)が実行され、選択したイメージが元の電子メールに添付されます。
注:ここではテキスト本文を使用しています。テキストが書式化されたHTMLの場合、p_body_htmlを使用して送信します。

|
| 9. |
Success MessageとFailure Messageを入力して、「Next」をクリックします。

|
| 10. |
When Button Pressedに「P4_SEND_EMAIL」を選択して、「Create Process」をクリックします。

|
| 11. |
また、プロセスの完了時に成功メッセージを含むようブランチを変更する必要があります。 デフォルトではこのオプションは選択されていません。 Branchesの下の「Go to Page」リンクを選択します。

|
| 12. |
「include process success message」チェック・ボックスを選択して、「Apply Changes」をクリックします。

|
| 13. |
ブランチが正しく変更されました。 次の項では、ページを実行してテストします。 『Oracle Application Express 3.1のBLOBデータの定義および表示』チュートリアルでデータベースに1つの画像だけを追加したので、Send Emailページをテストする前に別の画像を追加します。 Maintain Employee Informationのページ番号(ほとんどの場合2)を選択して、「Go」をクリックします。

|
トピック・リストに戻る
ページをテストして、添付ファイルのある電子メールを送信できます。 以下の手順を実行します。
| 1. |
「Run」をクリックして、このページを実行します。

|
| 2. |
別の従業員の「Edit」アイコンを選択して、Employee Detailsページへ移動します。

|
| 3. |
Photoの「Browse...」をクリックします。

|
| 4. |
前提条件にあるダウンロードしたapexnf.zipファイルのリストから「flowers-01_small.gif」ファイルを選択し、「Open」をクリックします。 「Apply Changes」をクリックします。

|
| 5. |
これで、Send Email Attachmentsページを実行できます。 開発者ツールバーにある「Application」リンクをクリックします。

|
| 6. |
「Send Email Attachments」ページを選択します。

|
| 7. |
「Run Page」をクリックします。

|
| 8. |
電子メール・アドレス、Fromの電子メール・アドレス、Subjectを入力し、「dog.gif」および「flowers-01_small.gif」のチェック・ボックスを選択して、Message Bodyに文字を入力します。 「Send Email」をクリックします。

|
| 9. |
電子メールが正しく送信されたことを確認します。

|
| 10. |
受信した電子メールは次のイメージのようになります。

|
トピック・リストに戻る
このチュートリアルでは、添付ファイルのある電子メールを送信するために必要なすべてのアイテムを含んだページを作成する方法を学習しました。
トピック・リストに戻る
Oracle Application Expressの詳細は、次のドキュメントで確認できます。
|
関連ドキュメント
|
説明
|
|
オンライン・ヘルプ
|
このヘルプへアクセスするには、Oracle Application Expressの上部右隅に表示されている「Help」ボタンをクリックしてください。 関連するトピックを検索します。
|
|
リリース・ノート
|
このノートには、Oracle Application Expressドキュメントに掲載されていない重要な情報が含まれています。
|
|
インストレーション・ガイド
|
このガイドでは、Oracle Application Expressのインストール方法および構成方法を説明します。
|
|
2日で開発者ガイド
|
ここでは、このガイドを使用した開発環境の設定方法、またはホストのデモ環境へのアクセス方法が示され、初期アプリケーションの構築、変更、プレビューについて段階的に説明します。
|
|
ユーザーズ・ガイド
|
このガイドでは、Oracle Application Express開発環境を使用して、データベース中心のWebアプリケーションを構築およびデプロイする方法を説明します。 Oracle Application Expressを使用して単独のOracleデータベースを共有サービスへと移行することで、分割されたデータベースでアプリケーションを実行している場合と同様に、アプリケーションに対し、複数のワークグループによる構築およびアクセスが可能となります。
|
|
アドバンスト・チュートリアル
|
上級チュートリアルは、Oracle Application Express開発環境を使用して、さまざまなアプリケーション・コンポーネントおよびすべてのアプリケーションを作成する方法に関して、段階的な手順で説明します。
|
トピック・リストに戻る
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|