前のページ|次のページ

FILENAMEステートメント、EMAIL (SMTP)アクセス方式

SMTP(Simple Mail Transfer Protocol)電子メールインターフェイスを介して、SASから電子メールをプログラムによって送信できます。

該当要素: 任意の場所
カテゴリ: データアクセス
制限事項: SASがロックダウン状態にある場合、FILENAMEステートメントのEMAILアクセス方式は使用できません。サーバー管理者は、このアクセス方式がロックダウン状態でも使用できるように、同方式を再有効化できます。詳細については、XisError: No pubcode in link data found for lrconを参照してください。

構文

引数

fileref

有効なファイル参照名を指定します。ファイル参照名とは、外部ファイルやデバイスタイプに一時的に割り当てられる名前です。ファイル参照名には8バイトを超える名前は使用できません。

EMAIL

EMAILデバイスタイプを指定します。SASから電子メールをプログラムにより送信できるアクセス方式が提供されます。SASを使用してSMTPサーバーにメッセージを送信するには、SMTP電子メールを有効にする必要があります。詳細については、XisError: No pubcode in link data found for lrconを参照してください。

'address'

メッセージの送信先となる電子メールアドレスを指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲む必要があります。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。TO=電子メールオプションを指定したり、PUTステートメントで!EM_TO!ディレクティブを指定する場合は、FILENAMEステートメントのaddress引数の指定は任意です。これらを指定すると、addressに指定した内容より優先されます。

電子メールオプション

FILENAMEステートメントに次の電子メールオプションのいずれかを使用して、電子メッセージの属性を指定できます。これらのオプションは、FILEステートメントにも指定できます。FILEステートメント内に指定した電子メールオプションは、FILENAMEステートメント内に指定した対応する電子メールオプションよりも優先されます。

ATTACH='filename.ext' | ATTACH= ('filename.ext' attachment-options)

メッセージに添付する1つまたは複数のファイルの物理名、および添付ファイルの仕様を変更するオプションを指定します。物理名には動作環境で判別できる名前を指定します。また、物理名は一重引用符で囲みます。複数のファイルを添付する場合、ファイルのグループを丸かっこで囲みます。また、各ファイルを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。例を次に示します。

attach="/u/userid/opinion.txt"
attach=('C:\Status\June2001.txt' 'C:\Status\July2001.txt')
attach="user.misc.pds(member)"
attachment-optionsには次を指定することができます。

CONTENT_TYPE='content/type'

添付ファイルのコンテンツの種類を指定します。値を一重引用符で囲む必要があります。コンテンツの種類を指定しない場合、SASではファイル名に基づいて正しいコンテンツの種類を特定しようとします。たとえば、コンテンツの種類を指定しない場合、ファイル名home.html は、コンテンツの種類をtext/htmlに設定して送信されます。

別名 CT=およびTYPE=
デフォルト ファイル名や拡張子に基づいてコンテンツの種類を特定できない場合、デフォルトの値はtext/plainに設定されます。

ENCODING='encoding-value'

SASに読み込む添付ファイルのテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。

参照項目 XisError: No pubcode in link data found for nlsref

EXTENSION='extension'

指定した添付ファイルに使用する別のファイル拡張子を指定します。値を一重引用符で囲む必要があります。この拡張子は、受信者の電子メールプログラムによって、添付ファイルの表示に使用する適切なユーティリティを選択するために使用されます。次の例を実行すると、添付ファイル

attach=("home.html" name="index" ext="htm")
別名 EXT=
extension=""と指定すると、指定した添付ファイルには拡張子が追加されません。

INLINED="reference-name"

HTMLを使用して電子メールに添付ファイルを埋め込むのに使用される参照名を指定します。添付ファイルを埋め込むには、content_type="text/html";を設定し、SRC="cid:reference-name"を指定して電子メールの本文から添付ファイルを参照します。reference-nameは、INLINE=オプションで指定します。

たとえば、attach=("image.jpg" inlined="myimage")のように指定します。電子メールの本文からこのイメージを参照するには、<IMG SRC="cid:myimage">を使用します。
イメージが参照されない場合、受信者にはそれが通常の添付ファイルに見えます。
参照項目 埋め込まれたイメージを含む電子メールの作成

LRECL=lrecl

このlreclには、データの論理レコード長を指定します。

デフォルト 256
操作 かわりに、XisError: No pubcode in link data found for lesysoptsrefを使用すると、グローバルな論理レコード長を指定できます。SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用している場合、LRECLのデフォルト値は256になります。

NAME='filename'

指定した添付ファイルに使用する別の名前を指定します。値を一重引用符で囲む必要があります。次の例を実行すると、添付ファイル

attach=("home.html" name="index")

OUTENCODING='encoding-value'

送信する添付ファイルの出力に使用するテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。

制限事項 SMTP電子メールインターフェイスではEBCDICがサポートされていないため、エンコーディングの値にEBCDICを指定しないでください。
参照項目 XisError: No pubcode in link data found for nlsref

BCC='bcc-address'

電子メールのBCCを受け取る1人または複数の受信者を指定します。bccフィールドにリストされた人が電子メールのコピーを受信します。BCCフィールドは電子メールのヘッダーに表示されないため、ここに指定した電子メールアドレスは他の受信者が表示することはできません。

BCCに指定したアドレスが複数の単語で構成されている場合、アドレスを一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲む必要があります。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。
bcc="joe@site.com"
bcc=("joe@site.com" "jane@home.net")
bcc="Joe Smith <joe@site.com>"

CC='cc-address'

電子メールメッセージのCCを受け取る1人または複数の受信者を指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

cc='joe@site.com'
cc=("joe@site.com" "jane@home.net")
cc="Joe Smith <joe@site.com>"

CONTENT_TYPE='content/type'

メッセージ本文のコンテンツの種類を指定します。コンテンツの種類を指定しない場合、SASでは正しいコンテンツの種類を特定しようとします。値を一重引用符で囲む必要があります。

コンテンツの種類を指定しない場合、デフォルトの'text/plain'が使用されます。'message/rfc822'を使用すると、電子メール全体を作成できます。SASは、FROM、SUBJECT、DATEの各オプションに加えて、MIME標準には含まれておらず電子メール内の先頭MIMEヘッダーの前に含めるようにユーザーが指定したその他のオプションのみを含めます。電子メール全体を作成する場合、ユーザーの希望する任意の方法でHTMLファイルの送信や電子メールのフォーマット化が行えます。
別名 CT=およびTYPE=
デフォルト text/plain
参照項目 MESSAGE/RFC822コンテンツタイプの使用

DELIVERYRECEIPT

電子メールを受信者に配信したときに送信する通知を指定します。

受信者の電子メールクライアントが配信確認メッセージをサポートしていない場合、または受信者が配信確認メッセージの要求を許可しない場合、送信者は電子メールの配信時に配信確認メッセージを受け取ることはできません。

ENCODING='encoding-value'

メッセージ本文に使用するテキストエンコーディングを指定します。 エンコーディングの有効な値については、XisError: No pubcode in link data found for nlsrefを参照してください。

EXPIRES='dd mon yyyy hh:mm'

電子メールメッセージの有効期限を指定します。

次に定義するdd mon hh:mm形式のパラメータを使用します。

dd

月の日付を示す01から31までの整数を指定します。

mon

月の名前(英語)の最初の3文字を指定します。

yyyy

年を示す4桁の整数を指定します。

hh

00から23の範囲で時間を指定します。

mm

00から59の範囲で分を指定します。

ヒント 指定した日時が現在の日時を過ぎている場合、エラーメッセージが表示され、電子メールは送信されません。

FROM='from-address'

送信メッセージの作成者のアドレスを指定します。FROM=のデフォルトの値は、SASを実行しているユーザーの電子メールアドレスになります。たとえば、メッセージの送信者が作成者とは異なる場合、このオプションを指定します。アドレスを一重引用符で囲む必要があります。電子メールアドレスは1つのみ指定できます。アドレスとともに作者の名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

from='martin@home.com'
from="Brad Martin <martin@home.com>"
要件 EMAILFROMシステムオプションを設定する場合は、FROMオプションを指定する必要があります。詳細については、XisError: No pubcode in link data found for lesysoptsrefを参照してください。
操作 FROM=オプションで指定した作成者とは異なる返信電子メールアドレスを指定するには、SENDER=オプションを指定します。
参照項目 SENDER='sender-address'

IMPORTANCE='LOW' | 'NORMAL' | 'HIGH'

電子メールメッセージの重要度を指定します。値を一重引用符で囲む必要があります。セッションエンコーディングと一致する言語で重要度を指定することもできます。ただし、RFC-2076の仕様(一般的なインターネットメッセージのヘッダ)に準拠するため、実際のメッセージヘッダには英語が使用されています。そのため、指定した重要度は英語に変換されます。例を次に示します。

filename inventory email 'name@mycompany.com' importance='high';
filename inventory email 'name@mycompany.com' importance='hoch';
デフォルト NORMAL

LRECL=lrecl

このlreclには、データの論理レコード長を指定します。

デフォルト 256
操作 かわりに、XisError: No pubcode in link data found for lesysoptsrefを使用すると、グローバルな論理レコード長を指定できます。SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用している場合、LRECLのデフォルト値は256になります。

READRECEIPT

受信者が電子メールを開封したときに送信する通知を指定します。

受信者の電子メールクライアントが開封確認メッセージをサポートしていない場合、または受信者が開封確認メッセージの要求を許可しない場合、送信者は受信者が電子メールを開封したときに開封確認メッセージを受け取ることはできません。

REPLYTO='replyto-address'

返信を受け取る1つまたは複数の電子メールアドレスを指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

replyto='hiroshi@home.com'
replyto=('hiroshi@home.com' 'akiko@site.com')
replyto="Hiroshi Mori <mori@site.com>"

SENDER='sender-address'

送信メッセージの返信電子メールアドレスを指定します。メッセージを配信できない場合は、送信者の電子メールアドレスに通知が送信されます。SENDER=のデフォルト値は、SASを実行しているユーザーの電子メールアドレスになります。例を次に示します。

sender='martin@home.com'
操作 SENDER=にはFROM=とは異なるアドレスを指定できます。これにより、FROM=オプションで指定した電子メールアドレスにかわってメッセージを送信することが可能になります。
参照項目 FROM='from-address'

SUBJECT=subject

メッセージの件名を指定します。件名に特殊文字または複数の単語(つまり、少なくともブランクが1つ含まれている)を使用する場合、件名のテキストを引用符で囲む必要があります。例を次に示します。

subject=Sales
subject="June Sales Report"
件名が1つの単語で構成されている場合は引用符で囲む必要はありません。このテキストは大文字に変換されます。

TO='to-address'

電子メールメッセージのプライマリ受信者を1人または複数指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

to='joe@site.com'
to=("joe@site.com" "jane@home.net")
to="Joe Smith <joe@site.com>"
ヒント Specifying TO= overrides the '' argument.

PUTステートメントの電子メールディレクティブ

メッセージの属性を変更するためにPUTステートメントに指定できるディレクティブを次に示します。

'!EM_ABORT!'

現在のメッセージを異常終了させます。このディレクティブを使用すると、DATAステップの最後に行うメッセージの自動送信を中止させることができます。デフォルトでは、FILEステートメントごとにメッセージが送信されます。

'!EM_ATTACH!'filename.ext' | ATTACH=('filename.ext' attachment-options)'

メッセージに添付する1つまたは複数のファイルの物理名、および添付ファイルの仕様を変更するオプションを置き換えます。物理名には動作環境で判別できる名前を指定します。ディレクティブは一重引用符で囲む必要があります。また、物理名も一重引用符で囲む必要があります。複数のファイルを添付する場合、ファイルのグループを丸かっこで囲みます。また、各ファイルを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。例を次に示します。

put '!em_attach! /u/userid/opinion.txt';
put '!em_attach! ("C:\Status\June2001.txt" "C:\Status\July2001.txt")';
put '!em_attach! user.misc.pds(member)';
attachment-optionsには次を指定することができます。

CONTENT_TYPE='content/type'

添付ファイルのコンテンツの種類を指定します。値を一重引用符で囲む必要があります。コンテンツの種類を指定しない場合、SASではファイル名に基づいて正しいコンテンツの種類を特定しようとします。たとえば、コンテンツの種類を指定しない場合、ファイル名home.html は、コンテンツの種類をtext/htmlに設定して送信されます。

別名 CT=およびTYPE=
デフォルト ファイル名や拡張子に基づいてコンテンツの種類を特定できない場合、デフォルトの値はtext/plainに設定されます。

ENCODING='encoding-value'

SASへの読み込み時に添付ファイルに使用するテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。エンコーディングの有効な値については、XisError: No pubcode in link data found for nlsrefを参照してください。

EXTENSION='extension'

指定した添付ファイルに使用する別のファイル拡張子を指定します。値を一重引用符で囲む必要があります。この拡張子は、受信者の電子メールプログラムによって、添付ファイルの表示に使用する適切なユーティリティを選択するために使用されます。次の例を実行すると、添付ファイル

put '!em_attach! ("home.html" name="index" ext="htm")';
別名 EXT=
デフォルト TXT

NAME='filename'

指定した添付ファイルに使用する別の名前を指定します。値を一重引用符で囲む必要があります。次の例を実行すると、添付ファイル

put '!em_attach! ("home.html" name="index")';

OUTENCODING='encoding-value'

送信する添付ファイルの出力に使用するテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。

制限事項 SMTP電子メールインターフェイスではEBCDICがサポートされていないため、エンコーディングの値にEBCDICを指定しないでください。
参照項目 XisError: No pubcode in link data found for nlsref

'!EM_BCC!bcc-address'

電子メールのBCCを受け取る1人または複数の受信者を指定します。bccフィールドにリストされた人が電子メールのコピーを受信します。BCCフィールドは電子メールのヘッダーに表示されないため、ここに指定した電子メールアドレスは他の受信者が表示することはできません。

BCCに指定したアドレスが複数の単語で構成されている場合、アドレスを一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲む必要があります。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。
put '!em_bcc! joe@site.com';
put '!em_bcc! ("joe@site.com" "jane@home.net")';
put '!em_bcc! Joe Smith <joe@site.com>';

'!EM_CC!cc-address'

電子メールメッセージのCCを受け取る1人または複数の受信者を指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

put '!em_cc! joe@site.com';
put '!em_cc! ("joe@site.com" "jane@home.com")';
put '!em_cc! Joe Smith <joe@site.com>';

'!EM_DELIVERYRECEIPT!'

電子メールを受信者に配信したときに送信する通知を指定します。

受信者の電子メールクライアントが配信確認メッセージをサポートしていない場合、または受信者が配信確認メッセージの要求を許可しない場合、送信者は電子メールの配信時に配信確認メッセージを受け取ることはできません。

'!EM_EXPIRES!dd mon yyyy hh:mm'

電子メールメッセージの有効期限を置き換えます。例を次に示します。

put '!em_expires! 15 Aug 2010 08:00';
put '!em_expires! 28 Feb 2011 23:00';
次に定義するdd mon hh:mm形式のパラメータを使用します。

dd

月の日付を示す01から31までの整数を指定します。

mon

月の名前(英語)の最初の3文字を指定します。

yyyy

年を示す4桁の整数を指定します。

hh

00から23の範囲で時間を指定します。

mm

00から59の範囲で分を指定します。

ヒント 指定した日時が現在の日時を過ぎている場合、エラーメッセージが表示され、電子メールは送信されません。

'!EM_FROM!from-address'

送信メッセージの作者の現在のアドレスを置き換えます。現在のアドレスは、デフォルト設定またはFROM=電子メールオプションに指定したアドレスのどちらかに設定されています。ディレクティブは一重引用符で囲む必要があります。電子メールアドレスは1つのみ指定できます。アドレスとともに作者の名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

put '!em_from! martin@home.com';
put '!em_from! Brad Martin <martin@home.com>';
操作 !EM_FROM!オプションで指定した作成者とは異なる返信電子メールアドレスを指定するには、!EM_SENDER!オプションを使用します。
参照項目 '!EM_SENDER!sender-address'

'!EM_IMPORTANCE!LOW | NORMAL | HIGH'

電子メールメッセージの重要度を指定します。ディレクティブは一重引用符で囲む必要があります。セッションエンコーディングと一致する言語で重要度を指定することもできます。ただし、RFC-2076の仕様(一般的なインターネットメッセージのヘッダ)に準拠するため、実際のメッセージヘッダには英語が使用されています。そのため、指定した重要度は英語に変換されます。例を次に示します。

put '!em_importance! high';
put '!em_importance! haut';
デフォルト NORMAL

'!EM_NEWMSG!'

PUTステートメントのディレクティブを使用して設定した現在のメッセージの属性をすべて消去します。

'!EM_READRECEIPT!'

受信者が電子メールを開封したときに送信する通知を指定します。

受信者の電子メールクライアントが開封確認メッセージをサポートしていない場合、または受信者が開封確認メッセージの要求を許可しない場合、送信者は受信者が電子メールを開封したときに開封確認メッセージを受け取ることはできません。

'!EM_REPLYTO!replyto-address'

返信を受け取る1つまたは複数の電子メールアドレスを指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

put '!em_replyto! hiroshi@home.com';
put '!em_replyto! ("hiroshi@home.com" "akiko@site.com")';
put '!em_replyto! Hiroshi Mori <mori@site.com>';

'!EM_SEND!'

現在の属性でメッセージを送信します。デフォルトでは、ファイル参照名の終了時にメッセージを送信します。ファイル参照名は、次のFILEステートメントがDATAステップの終了を検出したときに終了します。このディレクティブを使用する場合、SASはこのディレクティブを実行するときにメッセージを送信し、DATAステップの最後にもう一度メッセージを送信します。このディレクティブは、条件を指定してメッセージを送信したり、複数のメッセージの送信にループを使用するDATAステッププログラムを作成する場合に便利です。

'!EM_SENDER!sender-address'

送信メッセージの返信電子メールアドレスを指定します。メッセージを配信できない場合は、送信者の電子メールアドレスに通知が送信されます。!EMSENDER!のデフォルト値は、SASを実行しているユーザーの電子メールアドレスになります。例を次に示します。

put '!EMSENDER! martin@home.com';
操作 SENDER=にはFROM=とは異なるアドレスを指定できます。これにより、FROM=オプションで指定した電子メールアドレスにかわってメッセージを送信することが可能になります。
参照項目 '!EM_FROM!from-address'

'!EM_SUBJECT!subject'

メッセージの現在の件名を置き換えます。ディレクティブは一重引用符で囲む必要があります。件名に特殊文字または複数の単語(つまり、少なくともブランクが1つ含まれている)を使用する場合、件名のテキストを引用符で囲む必要があります。例を次に示します。

put '!em_subject! Sales';
put '!em_subject! "June Sales Report"';

'!EM_TO!to-address'

電子メールメッセージのプライマリ受信者を1人または複数指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。

put '!em_to! joe@site.com';
put '!em_to! ("joe@site.com" "jane@home.net")';
put '!em_to! Joe Smith <joe@site.com>';
ヒント !EM_TO! を指定すると、'address' 引数とTO=電子メールオプションより優先されます。

詳細

基本

EMAIL(SMTP)アクセス方式を使用して、SASからプログラムにより電子メールを送信することができます。SMTPサーバーに電子メールを送信するには、EMAILSYSシステムオプションを使用してSMTP電子メールインターフェイスを最初に指定する必要があります。次に、FILENAMEステートメントを使用してEMAILデバイスタイプを指定してから、DATAステップまたはSCLコードにあるSASステートメントをサブミットします。電子メールアクセス方式にはいくつかのメリットがあります。
  • DATAステップまたはSCLの論理を使用して、電子メールアドレスの大規模なデータセットに基づいて電子メール配信をサブセット化することができます。
  • バッチ処理を実行するためにサブミットしたSASプログラムの完了時に、電子メールを自動的に送信することができます。
  • 処理結果に基づいて、出力内容を電子メールで送信できます。
通常、電子メールを送信するDATAステップまたはSCLコードには、次のコンポーネントが含まれています。
  • EMAILデバイスタイプキーワードを指定したFILENAMEステートメント
  • FILENAMEまたはFILEステートメントに指定した、電子メールの受信者、件名、添付ファイルなどを示す電子メールオプション
  • メッセージの本文を定義するPUTステートメント
  • 電子メールディレクティブ(!EM_directive!の形式)を指定するPUTステートメント。このディレクティブは、電子メールオプション(例:TO=、CC=、SUBJECT=、 ATTACH=)より優先され、送信、異常終了、新規メッセージの開始などのアクションを実行します。
エンコードされた電子メールパスワードを使用できます。PROC PWENCODEを使用してパスワードをエンコードすると、出力された文字列にはエンコードされたことを示すタグが含まれます。タグの例は{sas001}です。このタグはエンコーディング方法を示しています。パスワードをエンコードすることにより、電子メールアクセス認証でプレーンテキストのパスワードを使用する必要がなくなります。"{sas"で始まるパスワードが検出されると、パスワードのデコードがトリガされます。デコードが正常に終了すると、デコードされたパスワードが使用されます。デコードに失敗すると、現状のパスワードが使用されます。詳細については、Base SASプロシジャガイドのPROC PWENCODEを参照してください。
異なるタイムゾーンに電子メールメッセージを送信する場合、EMAILUTCOFFSET=システムオプションを使用すると、電子メールメッセージにローカルタイムを示すUTCオフセットを表示することができます。コンピュータ上の時刻がUTCオフセットを使用する時刻に設定されていない場合や、コンピュータで夏時間が考慮されない場合は、このオプションを使用することをお勧めします。EMAILUTCOFFSET=システムオプションに指定したUTCオフセットにより、電子メールの日時の時刻に対してUTCオフセットの追加または置き換えが実行されます。詳細については、XisError: No pubcode in link data found for lesysoptsrefを参照してください。
EMAILアクセス方式でSMTPサーバーの応答を待つデフォルト時間は30秒です。SMTPサーバーの中にはクライアントからコマンドに確認を送るのに、他より時間がかかるものもあります。EMAILACKWAIT=システムオプションで待ち時間を指定できます。詳細については、XisError: No pubcode in link data found for lesysoptsrefを参照してください。
EMAILHOSTシステムオプションでTLS (Transport Layer Security)プロトコルを指定することにより、セキュアSMTPサーバーでもEMAILアクセス方式を使用することができます。TLSはクライアントと送信SMTPサーバー間のデータを暗号化します。これは、クライアント(送信者)とメッセージの送信者の間の暗号化された接続を保証するわけではありません。メッセージレベルの暗号化とデジタル署名については、現在、サポートしていません。詳細については、XisError: No pubcode in link data found for lesysoptsrefを参照してください。
注: TLSに関する説明はすべて、先行プロトコルであるSSL (Secure Sockets Layer)に対しても適用されます。

EMAIL(SMTP)アクセス方式でのPUTステートメントの構文

DATAステップで、FILEステートメントを使用して電子メールファイル参照名を出力先として定義した後、PUTステートメントを使用してメッセージ本文を定義します。次に例を示します。
options emailsys=smtp;

filename mymail email 'martin@site.com' subject='Sending Email';

data _null_;
   file mymail;
   put 'Hi';
   put 'This message is sent from SAS...';
run;
PUTステートメントを使用して、メッセージの属性(TO=、CC=、SUBJECT=、CONTENT_TYPE=、ATTACH=などの電子メールオプション)より優先される電子メールディレクティブを指定したり、送信、異常終了、新規メッセージの開始などのアクションを実行したりすることもできます。PUTステートメントごとにディレクティブを1つだけ指定します。各PUTステートメントには、指定したディレクティブに関連付けられているテキストのみを含められます。
電子メールディレクティブのリストについては、PUTステートメントの電子メールディレクティブを参照してください。

例1: DATAステップで添付ファイル付きの電子メールを送信する

SAS構成ファイルを他のユーザーと共有する場合、次のプログラムをサブミットすると構成ファイルを送信することができます。FILENAMEステートメントには、次の電子メールオプションが指定されています。
options emailsys=smtp;

filename mymail email "JBrown@site.com"
   subject="My SAS Configuration File"
   attach="/u/sas/sasv8.cfg";
data _null_;
   file mymail;
   put 'Jim,';
   put 'This is my SAS configuration file.';
   put 'I think you might like the';
   put 'new options I added.';
run;
次のプログラムでは、メッセージと2つの添付ファイルが複数の受信者に送信されます。この例では、FILENAMEステートメントのかわりに、FILEステートメントに電子メールオプションが指定されています。
options emailsys=smtp;

filename outbox email "ron@acme.com"; 
data _null_;    
   file outbox    
      to=("ron@acme.com" "humberto@acme.com")    
         /* Overrides value in */     
         /* filename statement */    
      cc=("miguel@acme.com" "loren@acme.com")    
      subject="My SAS Output"    
      attach=("C:\sas\results.out" "C:\sas\code.sas")  
   ;    
   put 'Folks,';    
   put 'Attached is my output from the SAS';    
   put 'program I ran last night.';     
   put 'It worked great!'; 
run;

例2: DATAステップで条件付きロジックを使用する

DATAステップで条件付きロジックを使用すると、複数のメッセージを送信したり、メッセージの受信者と受信するメッセージを制御できます。たとえば、2つの異なる部署のメンバにカスタマイズしたレポートを送信するため、次のプログラムでは受信者が所属する部署を基準にして電子メールメッセージと添付ファイルを生成します。プログラムでは、次が実行されます。
  • 最初のPUTステートメントでは、 !EM_TO! ディレクティブを使用してTO属性が割り当てます。
  • 2番目のPUTステートメントでは、!EM_SUBJECT!ディレクティブを使用してSUBJECT属性を割り当てます。
  • !EM_SEND! ディレクティブにより、メッセージが送信されます。
  • !EM_NEWMSG! ディレクティブにより、メッセージ属性がクリアされます。このディレクティブは、受信者間でメッセージ属性をクリアするために必要です。
  • !EM_ABORT! ディレクティブにより、RUNステートメントでメッセージを再度送信する前にメッセージを異常終了させます。!EM_ABORT! ディレクティブにより、DATAステップの終わりにメッセージが自動的に送信されることが回避されます。
options emailsys=smtp;

filename reports email "Jim.Smith@work.com"; 
data _null_;    
   file reports;    
   length name dept $ 21;    
   input name dept;    
   put '!EM_TO! ' name;       
   put '!EM_SUBJECT! Report for ' dept;      
   put name ',';    
   put 'Here is the latest report for ' dept '.' ;    
   if dept='marketing' then    
      put '!EM_ATTACH! c:\mktrept.txt';  
   else  /* ATTACH the appropriate report */       
      put '!EM_ATTACH! c:\devrept.txt';
      put '!EM_SEND!';       
      put '!EM_NEWMSG!';     
      put '!EM_ABORT!';      
   datalines; 
Susan          marketing 
Peter          marketing 
Alma           development 
Andre          development 
;
run;

例3: 電子メールでプロシジャ出力を送信する

電子メールを使用してプロシジャ出力を送信することができます。この例では、電子メールメッセージの本文にODS HTMLを送信する方法を示します。ODS HTMLプロシジャ出力は、RECORD_SEPARATOR (RS)オプションをNONEに設定して送信する必要があります。
options emailsys=smtp;

filename outbox email
   to='susan@site.com'
   type='text/html'
   subject='Temperature Conversions';
data temperatures;
   do centigrade = -40 to 100 by 10;
      fahrenheit = centigrade*9/5+32;
      output;
   end;
run;
ods html
   body=outbox /* Mail it! */
   rs=none;
title 'Centigrade to Fahrenheit Conversion Table';
proc print;
   id centigrade;
   var fahrenheit;
run;

例4: イメージの作成と送信

次の例では、GIFイメージを作成し、このイメージをSASから電子メールメッセージの添付として送信する方法を示します。
options emailsys=smtp;

filename gsasfile email
   to='Jim@acme.com'
   type='image/gif'
   subject="SAS/GRAPH Output";
goptions dev=gif gsfname=gsasfile;
proc gtestit pic=1; 
run;

例5: MESSAGE/RFC822コンテンツタイプの使用

次の例では、.mhtファイルの内容を含む電子メールを送信します。
options emailsys=smtp;

filename myemail email 
to="Jim@acme.com" 
from="Wiley <wcoyote@acme.com>" 
sender="Wiley <wcoyote@acme.com>"
subject="Message/RFC822 Example"
content_type="message/rfc822";
data _null_;
  file myemail;
  infile 'C:\temp\customer.mht'; 
  input @; 
  put _infile_;
run;

例6: 埋め込まれたイメージを含む電子メールの作成

次の例では、埋め込まれたイメージを含む電子メールを作成します。
options emailsys=smtp;

filename myemail email 
to="Jim@acme.com" 
from="Wiley <wcoyote@acme.com>" 
sender="Wiley <wcoyote@sas.com>"
attach=('C:\Public\Pictures\Sample Pictures\sasLogo.gif' NAME="sasLogo" INLINED="logo" 
   'C:\temp\reportToEmail.html' NAME='myreport')
subject="Embedded Image Example"
content_type="text/html";
 
data _null_;
file myemail;
   put 'Dear customer,<br><br>';
   put 'This is an example email with content type text/html, an attached report ';
   put 'and an embedded image.<br><br>';
   put 'Sincerely,<br><br>';
   put 'Wiley Coyote<br>';
   put 'Developer<br>';
   put 'SAS Research & Development<br>';
   put '1234 Any Street<br> ';
   put 'Sampletown';
   put 'NC 45678<br><br><br>';
   put '<IMG SRC="cid:logo" height="40" width="160">';
 run;

関連項目:

XisError: No pubcode in link data found for lrcon
XisError: No pubcode in link data found for lrcon
XisError: No pubcode in link data found for secref
システムオプション:
XisError: No pubcode in link data found for lesysoptsref
XisError: No pubcode in link data found for lesysoptsref
XisError: No pubcode in link data found for lesysoptsref
前のページ|次のページ|ページの先頭へ