Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » システム・オブジェクト » システム・プロシージャ » システム・プロシージャのアルファベット順リスト

 

xp_sendmail システム・プロシージャ

電子メール・メッセージを送信します。

構文
xp_sendmail( 
 recipient = mail-address
 [, subject = subject ]
 [, cc_recipient = mail-address ]
 [, bcc_recipient = mail-address ]
 [, query = sql-query ]
 [, "message" = message-body ]
 [, attachname = attach-name ] 
 [, attach_result = attach-result ] 
 [, echo_error = echo-error ] 
 [, include_file = filename ] 
 [, no_column_header = no-column-header ] 
 [, no_output = no-output ] 
 [, width = width ]  
 [, separator = separator-char ] 
 [, dbuser = user-name ] 
 [, dbname = db-name ]  
 [, type = type ] 
 [, include_query = include-query ] 
 [, content_type = content-type ]
)
引数

一部の引数は固定値を指定しており、下記のように Transact-SQL との互換性を保つために使用できます。

  • recipient   受信者のメール・アドレスを指定する LONG VARCHAR パラメータ。複数の受信者を指定するときは、各電子メールアドレスをセミコロンで区切ります。

  • subject   メッセージの件名フィールドを指定する LONG VARCHAR パラメータ。デフォルト値は NULL です。

  • cc_recipient   cc 受信者のメール・アドレスを指定する LONG VARCHAR パラメータ。複数の cc 受信者を指定するときは、各電子メールアドレスをセミコロンで区切ります。デフォルト値は NULL です。

  • bcc_recipient   bcc 受信者のメール・アドレスを指定する LONG VARCHAR パラメータ。複数の bcc 受信者を指定するときは、各電子メールアドレスをセミコロンで区切ります。デフォルト値は NULL です。

  • query   この LONG VARCHAR は Transact-SQL で使用されます。デフォルト値は NULL です。

  • "message"   メッセージの内容を指定する LONG VARCHAR パラメータ。デフォルト値は NULL です。"message" は予約語であるため、"message" パラメータ名は二重引用符で囲む必要があります。予約語を参照してください。

  • attachname   この LONG VARCHAR パラメータは Transact-SQL で使用されます。デフォルト値は NULL です。

  • attach_result   この INT パラメータは Transact-SQL で使用されます。デフォルトは 0 です。

  • echo_error   この INT パラメータは Transact-SQL で使用されます。デフォルトは 1 です。

  • include_file   添付ファイルを指定する LONG VARCHAR パラメータ。デフォルト値は NULL です。

  • no_column_header   この INT パラメータは Transact-SQL で使用されます。デフォルトは 0 です。

  • 'no_output'   この INT パラメータは Transact-SQL で使用されます。デフォルトは 0 です。

  • width   この INT パラメータは Transact-SQL で使用されます。デフォルトは 80 です。

  • separator   この CHAR(1) パラメータは Transact-SQL で使用されます。デフォルトは 9 です。

  • dbuser   この LONG VARCHAR パラメータは Transact-SQL で使用されます。デフォルトは guest です。

  • dbname   この LONG VARCHAR パラメータは Transact-SQL で使用されます。デフォルトは master です。

  • type   この LONG VARCHAR パラメータは Transact-SQL で使用されます。デフォルト値は NULL です。

  • include_query   この INT パラメータは Transact-SQL で使用されます。デフォルトは 0 です。

  • content_type   この LONG VARCHAR パラメータは、"message" パラメータのコンテンツ・タイプを指定します (たとえば、text/html、ASIS など)。デフォルト値は NULL です。content_type の値が検証され、無効なコンテンツ・タイプを設定すると、無効または一貫性がない電子メールが送信されます。

    ヘッダを手動で設定する場合は、content_type パラメータを ASIS に設定します。この操作を行った場合、xp_sendmail プロシージャは、"message" パラメータに渡されたデータが正しく構成されたヘッダ付き電子メールであると想定して、ヘッダをさらに追加することはしません。ASIS を指定した場合は、データを他のパラメータに渡すことで通常なら自動的に指定されるヘッダも含めて、すべてのヘッダを "message" パラメータに手動で設定する必要があります。

パーミッション

DBA 権限が必要です。

MAPI で電子メール・セッションを開始する xp_startmail、または SMTP で電子メール・セッションを開始する xp_startsmtp を実行します。

MAPI を使用して電子メールを送信する場合、content_type パラメータはサポートされません。

備考

xp_sendmail は、xp_startmail または xp_startsmtp でセッションが開始されると、指定された受信者に電子メール・メッセージを送信するシステム・プロシージャです。このプロシージャには、任意の長さのメッセージを指定できます。xp_sendmail の引数値は文字列です。各引数の長さは、システムで使用可能なメモリ容量によって制限されます。

content_type 引数は、MIME email. xp_sendmail の要件を理解するユーザが、content_type として ASIS を受け入れる場合に使用します。content_type が ASIS に設定されると、xp_sendmail はメッセージ・ボディ ("message") が正しく構成されたヘッダ付き電子メールであると想定し、ヘッダをさらに追加することはしません。ASIS を指定して、複数のコンテンツ・タイプを含む複数のメッセージを送信できます。MIME の詳細については、RFC 2045 ~ 2049 ([external link] http://www.ietf.org/) を参照してください。

include_file パラメータで指定された添付ファイルは、application/octet-stream MIME タイプとして base64 エンコーディングで送信され、データベース・サーバに作成されます。

SQL Anywhere 10.0.0 以降では、SMTP 電子メール・システムで送信される電子メールは、件名行に 7 ビット ASCII ではない文字が含まれていると、エンコードされます。また、SMS 対応デバイスに送信された電子メールは、件名行に 7 ビット ASCII ではない文字が含まれていると、正しくデコードされないことがあります。

リターン・コード

MAPI と SMTP 用のシステム・プロシージャのリターン・コードを参照してください。

参照

次の呼び出しは、メール添付書類としてファイル prices.doc を持つメッセージを、ユーザ ID Sales Group に送信します。

CALL xp_sendmail( recipient='Sales Group',
      subject='New Pricing',
      include_file = 'C:\\DOCS\\PRICES.DOC' );

次のサンプル・プログラムは、内容を見てわかるように、多様な xp_sendmail システム・プロシージャの使用例を示します。

BEGIN
DECLARE to_list LONG VARCHAR;
DECLARE email_subject CHAR(256);
DECLARE content LONG VARCHAR;
DECLARE uid CHAR(20);

SET to_list='test_account@mytestdomain.com';
SET email_subject='This is a test';
SET uid='test_sender@mytestdomain.com'; 

// Call xp_startsmtp to start an SMTP email session
CALL xp_startsmtp( uid, 'mymailserver.mytestdomain.com' );

// Basic email example
SET content='This text is the body of my email.\n'; 
CALL xp_sendmail( recipient=to_list,
     subject=email_subject,
     "message"=content ); 

// Send email containing HTML using the content_type parameter,
// as well as including an attachment with the include_file
// parameter
SET content='Plain text.<BR><BR><B>Bold text.</B><BR><BR><a href="www.iAnywhere.com">iAnywhere 
 Home Page</a></B><BR><BR>';
CALL xp_sendmail( recipient=to_list,
     subject=email_subject,
     "message"=content,
     content_type = 'text/html',
     include_file = 'test.zip' ); 

// Send email "ASIS".  Here the content-type has been specified
// by the user as part of email body.  Note the attachment can
// also be done separately
SET content='Content-Type: text/html;\nContent-Disposition: inline; \n\nThis text 
 is not bold<BR><BR><B>This text is bold</B><BR><BR><a href="www.iAnywhere.com">iAnywhere Home 
 Page</a></B><BR><BR>';
CALL xp_sendmail( recipient=to_list,
     subject=email_subject,
     "message"=content,
     content_type = 'ASIS',
     include_file = 'test.zip' ); 

// Send email "ASIS" along with an include file.  Note that  
// "message" contains the information for another attachment
SET content = 'Content-Type: multipart/mixed; boundary="xxxxx";\n';
SET content = content || 'This part of the email should not be shown.  If this is shown 
 then the email client is not MIME compatible\n\n';
SET content = content || '--xxxxx\n';
SET content = content || 'Content-Type: text/html;\n';
SET content = content || 'Content-Disposition: inline;\n\n';
SET content = content || 'This text is not bold<BR><BR><B>This text is bold</B><BR>
 <BR><a href="www.iAnywhere.com">iAnywhere Home Page</a></B><BR><BR>\n\n';
SET content = content || '--xxxxx\n'; 
SET content = content || 'Content-Type: application/zip; name="test.zip"\n';
SET content = content || 'Content-Transfer-Encoding: base64\n';
SET content = content || 'Content-Disposition: attachment; filename="test.zip"\n\n';

// Encode the attachment yourself instead of adding this one in 
// the include_file parameter
SET content = content || base64_encode( xp_read_file( 'othertest.zip' ) ) || '\n\n';
SET content = content || '--xxxxx--\n'; 
CALL xp_sendmail( recipient=to_list,
      subject=email_subject,
      "message"=content,
      content_type = 'ASIS',
      include_file = 'othertest.zip' );

// End the SMTP session
    CALL xp_stopsmtp();
END