電子メールメッセージを送信します。
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 との互換性のために提供されています。SQL Anywhere では使用されません。デフォルト値は NULL です。
"message" メッセージの内容を指定する LONG VARCHAR パラメーター。デフォルト値は NULL です。"message" は予約語であるため、"message" パラメーター名は二重引用符で囲む必要があります。
attachname この LONG VARCHAR パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルト値は NULL です。
attach_result この INT パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは 0 です。
echo_error この INT パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは 1 です。
include_file 添付ファイルを指定する LONG VARCHAR パラメーター。デフォルト値は NULL です。
no_column_header この INT パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは 0 です。
'no_output' この INT パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは 0 です。
width この INT パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは 80 です。
separator この CHAR(1) パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは CHAR(9) です。
dbuser この LONG VARCHAR パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは guest です。
dbname この LONG VARCHAR パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは master です。
type この LONG VARCHAR パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルト値は NULL です。
include_query この INT パラメーターは Transact-SQL との互換性のために提供されています。SQL Anywhere では使用されません。デフォルトは 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 電子メールの要件を理解しているユーザーが使用します。xp_sendmail では、ASIS が content_type として受け入れられます。content_type が ASIS に設定されると、xp_sendmail
はメッセージ本文 ("message") が正しく構成されたヘッダー付き電子メールであると想定し、ヘッダーをさらに追加することはしません。ASIS を指定して、複数のコンテンツタイプを含むマルチパートメッセージを送信できます。MIME の詳細については、RFC
2045 ~ 2049 ( 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 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 |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |