31.2 ADD_ATTACHMENTプロシージャのシグネチャ1
このプロシージャは、外部への電子メール・メッセージにBLOBタイプの添付を追加します。1つの電子メールに複数の添付を追加するには、1つの電子メール・メッセージに対してAPEX_MAIL.ADD_ATTACHMENT
を繰り返しコールします。
構文
APEX_MAIL.ADD_ATTACHMENT (
p_mail_id IN NUMBER,
p_attachment IN BLOB,
p_filename IN VARCHAR2,
p_mime_type IN VARCHAR2
p_content_id IN VARCHAR2 DEFAULT NULL );
パラメータ
表31-1 ADD_ATTACHMENTのパラメータ
パラメータ | 説明 |
---|---|
p_mail_id |
電子メールに関連付けられている数値ID。これは、電子メールの本文を作成するAPEX_MAIL.SEND のコールから戻される数値識別子です。
|
p_attachment |
電子メール・メッセージに添付するバイナリ・コンテンツを含むBLOB 変数。
|
p_filename |
電子メール添付に関連付けられているファイル名。 |
p_mime_type |
電子メールの添付に関連付けられる有効なMIMEタイプ(またはインターネット・メディア・タイプ)。 |
p_content_id |
オプションの添付ファイル識別子。nullでない場合、そのファイルはインラインで添付されます。その後、その添付ファイルを、 ノート: インライン化されたイメージの自動表示はすべての電子メール・クライアントでサポートされているわけではないことに注意してください。 |
例1
次の例に、APEX_APPLICATION_FILES
に格納されているファイルにアクセスする方法、およびこれらを外部への電子メール・メッセージに追加する方法を示します
DECLARE
l_id NUMBER;
BEGIN
l_id := APEX_MAIL.SEND(
p_to => 'fred@flintstone.com',
p_from => 'barney@rubble.com',
p_subj => 'APEX_MAIL with attachment',
p_body => 'Please review the attachment.',
p_body_html => '<b>Please</b> review the attachment');
FOR c1 IN (SELECT filename, blob_content, mime_type
FROM APEX_APPLICATION_FILES
WHERE ID IN (123,456)) LOOP
APEX_MAIL.ADD_ATTACHMENT(
p_mail_id => l_id,
p_attachment => c1.blob_content,
p_filename => c1.filename,
p_mime_type => c1.mime_type);
END LOOP;
COMMIT;
END;
/
例2
この例では、コンテンツ識別子の使用によってファイルをインラインで添付する方法と、電子メールのHTMLにおいてその添付ファイルを参照する方法を示します。
DECLARE
l_id number;
l_body clob;
l_body_html clob;
l_content_id varchar2(100) := 'my-inline-image';
l_filename varchar2(100);
l_mime_type varchar2(100);
l_image blob;
BEGIN
l_body := 'To view the content of this message, please use an HTML enabled mail client.' || utl_tcp.crlf;
l_body_html := '<html><body>' || utl_tcp.crlf ||
'<p>Here is the image you requested.</p>' || utl_tcp.crlf ||
'<p><img src="cid:' || l_content_id || '" alt="Requested Image"></p>' || utl_tcp.crlf ||
'<p>Thanks,<br />' || utl_tcp.crlf ||
'The Application Express Dev Team<br />' || utl_tcp.crlf ||
'</body></html>';
l_id := apex_mail.send (
p_to => 'some_user@somewhere.com', -- change to your email address
p_from => 'some_sender@somewhere.com', -- change to a real senders email address
p_body => l_body,
p_body_html => l_body_html,
p_subj => 'Requested Image' );
select filename, mime_type, blob_content
into l_filename, l_mime_type, l_image
from apex_application_files
where id = 123;
apex_mail.add_attachment(
p_mail_id => l_id,
p_attachment => l_image,
p_filename => l_filename,
p_mime_type => l_mime_type,
p_content_id => l_content_id );
COMMIT;
END;
親トピック: APEX_MAIL