SMTP(Simple Mail Transfer Protocol)電子メールインターフェイスを介して、SASから電子メールをプログラムによって送信できます。
該当要素: | 任意の場所 |
カテゴリ: | データアクセス |
制限事項: | SASがロックダウン状態にある場合、FILENAMEステートメントのEMAILアクセス方式は使用できません。サーバー管理者は、このアクセス方式がロックダウン状態でも使用できるように、同方式を再有効化できます。詳細については、XisError: No pubcode in link data found for lrconを参照してください。 |
有効なファイル参照名を指定します。ファイル参照名とは、外部ファイルやデバイスタイプに一時的に割り当てられる名前です。ファイル参照名には8バイトを超える名前は使用できません。
EMAILデバイスタイプを指定します。SASから電子メールをプログラムにより送信できるアクセス方式が提供されます。SASを使用してSMTPサーバーにメッセージを送信するには、SMTP電子メールを有効にする必要があります。詳細については、XisError: No pubcode in link data found for lrconを参照してください。
メッセージの送信先となる電子メールアドレスを指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲む必要があります。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。TO=電子メールオプションを指定したり、PUTステートメントで!EM_TO!ディレクティブを指定する場合は、FILENAMEステートメントのaddress引数の指定は任意です。これらを指定すると、addressに指定した内容より優先されます。
FILENAMEステートメントに次の電子メールオプションのいずれかを使用して、電子メッセージの属性を指定できます。これらのオプションは、FILEステートメントにも指定できます。FILEステートメント内に指定した電子メールオプションは、FILENAMEステートメント内に指定した対応する電子メールオプションよりも優先されます。
メッセージに添付する1つまたは複数のファイルの物理名、および添付ファイルの仕様を変更するオプションを指定します。物理名には動作環境で判別できる名前を指定します。また、物理名は一重引用符で囲みます。複数のファイルを添付する場合、ファイルのグループを丸かっこで囲みます。また、各ファイルを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。例を次に示します。
attach="/u/userid/opinion.txt" attach=('C:\Status\June2001.txt' 'C:\Status\July2001.txt') attach="user.misc.pds(member)"
添付ファイルのコンテンツの種類を指定します。値を一重引用符で囲む必要があります。コンテンツの種類を指定しない場合、SASではファイル名に基づいて正しいコンテンツの種類を特定しようとします。たとえば、コンテンツの種類を指定しない場合、ファイル名home.html
は、コンテンツの種類をtext/htmlに設定して送信されます。
別名 | CT=およびTYPE= |
デフォルト | ファイル名や拡張子に基づいてコンテンツの種類を特定できない場合、デフォルトの値はtext/plainに設定されます。 |
SASに読み込む添付ファイルのテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。
参照項目 | XisError: No pubcode in link data found for nlsref |
指定した添付ファイルに使用する別のファイル拡張子を指定します。値を一重引用符で囲む必要があります。この拡張子は、受信者の電子メールプログラムによって、添付ファイルの表示に使用する適切なユーティリティを選択するために使用されます。次の例を実行すると、添付ファイル
attach=("home.html" name="index" ext="htm")
別名 | EXT= |
注 | extension=""と指定すると、指定した添付ファイルには拡張子が追加されません。 |
HTMLを使用して電子メールに添付ファイルを埋め込むのに使用される参照名を指定します。添付ファイルを埋め込むには、content_type="text/html";
を設定し、SRC="cid:reference-name"
を指定して電子メールの本文から添付ファイルを参照します。reference-nameは、INLINE=オプションで指定します。
attach=("image.jpg" inlined="myimage")
のように指定します。電子メールの本文からこのイメージを参照するには、<IMG SRC="cid:myimage">
を使用します。
注 | イメージが参照されない場合、受信者にはそれが通常の添付ファイルに見えます。 |
参照項目 | 埋め込まれたイメージを含む電子メールの作成 |
このlreclには、データの論理レコード長を指定します。
デフォルト | 256 |
操作 | かわりに、XisError: No pubcode in link data found for lesysoptsrefを使用すると、グローバルな論理レコード長を指定できます。SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用している場合、LRECLのデフォルト値は256になります。 |
指定した添付ファイルに使用する別の名前を指定します。値を一重引用符で囲む必要があります。次の例を実行すると、添付ファイル
attach=("home.html" name="index")
送信する添付ファイルの出力に使用するテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。
制限事項 | SMTP電子メールインターフェイスではEBCDICがサポートされていないため、エンコーディングの値にEBCDICを指定しないでください。 |
参照項目 | XisError: No pubcode in link data found for nlsref |
電子メールのBCCを受け取る1人または複数の受信者を指定します。bcc
フィールドにリストされた人が電子メールのコピーを受信します。BCCフィールドは電子メールのヘッダーに表示されないため、ここに指定した電子メールアドレスは他の受信者が表示することはできません。
bcc="joe@site.com" bcc=("joe@site.com" "jane@home.net") bcc="Joe Smith <joe@site.com>"
電子メールメッセージのCCを受け取る1人または複数の受信者を指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。
cc='joe@site.com' cc=("joe@site.com" "jane@home.net") cc="Joe Smith <joe@site.com>"
メッセージ本文のコンテンツの種類を指定します。コンテンツの種類を指定しない場合、SASでは正しいコンテンツの種類を特定しようとします。値を一重引用符で囲む必要があります。
'text/plain'
が使用されます。'message/rfc822'
を使用すると、電子メール全体を作成できます。SASは、FROM、SUBJECT、DATEの各オプションに加えて、MIME標準には含まれておらず電子メール内の先頭MIMEヘッダーの前に含めるようにユーザーが指定したその他のオプションのみを含めます。電子メール全体を作成する場合、ユーザーの希望する任意の方法でHTMLファイルの送信や電子メールのフォーマット化が行えます。
別名 | CT=およびTYPE= |
デフォルト | text/plain |
参照項目 | MESSAGE/RFC822コンテンツタイプの使用 |
電子メールを受信者に配信したときに送信する通知を指定します。
注 | 受信者の電子メールクライアントが配信確認メッセージをサポートしていない場合、または受信者が配信確認メッセージの要求を許可しない場合、送信者は電子メールの配信時に配信確認メッセージを受け取ることはできません。 |
メッセージ本文に使用するテキストエンコーディングを指定します。 エンコーディングの有効な値については、XisError: No pubcode in link data found for nlsrefを参照してください。
電子メールメッセージの有効期限を指定します。
月の日付を示す01から31までの整数を指定します。
月の名前(英語)の最初の3文字を指定します。
年を示す4桁の整数を指定します。
00から23の範囲で時間を指定します。
00から59の範囲で分を指定します。
ヒント | 指定した日時が現在の日時を過ぎている場合、エラーメッセージが表示され、電子メールは送信されません。 |
送信メッセージの作成者のアドレスを指定します。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' |
電子メールメッセージの重要度を指定します。値を一重引用符で囲む必要があります。セッションエンコーディングと一致する言語で重要度を指定することもできます。ただし、RFC-2076の仕様(一般的なインターネットメッセージのヘッダ)に準拠するため、実際のメッセージヘッダには英語が使用されています。そのため、指定した重要度は英語に変換されます。例を次に示します。
filename inventory email 'name@mycompany.com' importance='high'; filename inventory email 'name@mycompany.com' importance='hoch';
デフォルト | NORMAL |
このlreclには、データの論理レコード長を指定します。
デフォルト | 256 |
操作 | かわりに、XisError: No pubcode in link data found for lesysoptsrefを使用すると、グローバルな論理レコード長を指定できます。SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用している場合、LRECLのデフォルト値は256になります。 |
受信者が電子メールを開封したときに送信する通知を指定します。
注 | 受信者の電子メールクライアントが開封確認メッセージをサポートしていない場合、または受信者が開封確認メッセージの要求を許可しない場合、送信者は受信者が電子メールを開封したときに開封確認メッセージを受け取ることはできません。 |
返信を受け取る1つまたは複数の電子メールアドレスを指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。
replyto='hiroshi@home.com' replyto=('hiroshi@home.com' 'akiko@site.com') replyto="Hiroshi Mori <mori@site.com>"
送信メッセージの返信電子メールアドレスを指定します。メッセージを配信できない場合は、送信者の電子メールアドレスに通知が送信されます。SENDER=のデフォルト値は、SASを実行しているユーザーの電子メールアドレスになります。例を次に示します。
sender='martin@home.com'
操作 | SENDER=にはFROM=とは異なるアドレスを指定できます。これにより、FROM=オプションで指定した電子メールアドレスにかわってメッセージを送信することが可能になります。 |
参照項目 | FROM='from-address' |
メッセージの件名を指定します。件名に特殊文字または複数の単語(つまり、少なくともブランクが1つ含まれている)を使用する場合、件名のテキストを引用符で囲む必要があります。例を次に示します。
subject=Sales subject="June Sales Report"
注 | 件名が1つの単語で構成されている場合は引用符で囲む必要はありません。このテキストは大文字に変換されます。 |
電子メールメッセージのプライマリ受信者を1人または複数指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。
to='joe@site.com' to=("joe@site.com" "jane@home.net") to="Joe Smith <joe@site.com>"
ヒント | Specifying TO= overrides the '' argument. |
メッセージの属性を変更するためにPUTステートメントに指定できるディレクティブを次に示します。
現在のメッセージを異常終了させます。このディレクティブを使用すると、DATAステップの最後に行うメッセージの自動送信を中止させることができます。デフォルトでは、FILEステートメントごとにメッセージが送信されます。
メッセージに添付する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)';
添付ファイルのコンテンツの種類を指定します。値を一重引用符で囲む必要があります。コンテンツの種類を指定しない場合、SASではファイル名に基づいて正しいコンテンツの種類を特定しようとします。たとえば、コンテンツの種類を指定しない場合、ファイル名home.html
は、コンテンツの種類をtext/htmlに設定して送信されます。
別名 | CT=およびTYPE= |
デフォルト | ファイル名や拡張子に基づいてコンテンツの種類を特定できない場合、デフォルトの値はtext/plainに設定されます。 |
SASへの読み込み時に添付ファイルに使用するテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。エンコーディングの有効な値については、XisError: No pubcode in link data found for nlsrefを参照してください。
指定した添付ファイルに使用する別のファイル拡張子を指定します。値を一重引用符で囲む必要があります。この拡張子は、受信者の電子メールプログラムによって、添付ファイルの表示に使用する適切なユーティリティを選択するために使用されます。次の例を実行すると、添付ファイル
put '!em_attach! ("home.html" name="index" ext="htm")';
別名 | EXT= |
デフォルト | TXT |
指定した添付ファイルに使用する別の名前を指定します。値を一重引用符で囲む必要があります。次の例を実行すると、添付ファイル
put '!em_attach! ("home.html" name="index")';
送信する添付ファイルの出力に使用するテキストエンコーディングを指定します。値を一重引用符で囲む必要があります。
制限事項 | SMTP電子メールインターフェイスではEBCDICがサポートされていないため、エンコーディングの値にEBCDICを指定しないでください。 |
参照項目 | XisError: No pubcode in link data found for nlsref |
電子メールのBCCを受け取る1人または複数の受信者を指定します。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>';
電子メールメッセージの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>';
電子メールを受信者に配信したときに送信する通知を指定します。
注 | 受信者の電子メールクライアントが配信確認メッセージをサポートしていない場合、または受信者が配信確認メッセージの要求を許可しない場合、送信者は電子メールの配信時に配信確認メッセージを受け取ることはできません。 |
電子メールメッセージの有効期限を置き換えます。例を次に示します。
put '!em_expires! 15 Aug 2010 08:00'; put '!em_expires! 28 Feb 2011 23:00';
月の日付を示す01から31までの整数を指定します。
月の名前(英語)の最初の3文字を指定します。
年を示す4桁の整数を指定します。
00から23の範囲で時間を指定します。
00から59の範囲で分を指定します。
ヒント | 指定した日時が現在の日時を過ぎている場合、エラーメッセージが表示され、電子メールは送信されません。 |
送信メッセージの作者の現在のアドレスを置き換えます。現在のアドレスは、デフォルト設定またはFROM=電子メールオプションに指定したアドレスのどちらかに設定されています。ディレクティブは一重引用符で囲む必要があります。電子メールアドレスは1つのみ指定できます。アドレスとともに作者の名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。
put '!em_from! martin@home.com'; put '!em_from! Brad Martin <martin@home.com>';
操作 | !EM_FROM!オプションで指定した作成者とは異なる返信電子メールアドレスを指定するには、!EM_SENDER!オプションを使用します。 |
参照項目 | '!EM_SENDER!sender-address' |
電子メールメッセージの重要度を指定します。ディレクティブは一重引用符で囲む必要があります。セッションエンコーディングと一致する言語で重要度を指定することもできます。ただし、RFC-2076の仕様(一般的なインターネットメッセージのヘッダ)に準拠するため、実際のメッセージヘッダには英語が使用されています。そのため、指定した重要度は英語に変換されます。例を次に示します。
put '!em_importance! high'; put '!em_importance! haut';
デフォルト | NORMAL |
PUTステートメントのディレクティブを使用して設定した現在のメッセージの属性をすべて消去します。
受信者が電子メールを開封したときに送信する通知を指定します。
注 | 受信者の電子メールクライアントが開封確認メッセージをサポートしていない場合、または受信者が開封確認メッセージの要求を許可しない場合、送信者は受信者が電子メールを開封したときに開封確認メッセージを受け取ることはできません。 |
返信を受け取る1つまたは複数の電子メールアドレスを指定します。アドレスは一重引用符または二重引用符で囲む必要があります。複数のアドレスを指定する場合は、アドレスのグループを丸かっこで囲みます。また、各アドレスを一重引用符または二重引用符で囲んでから、カンマまたはスペースで区切る必要があります。アドレスとともに名前を指定するには、アドレスを山かっこ(< >)で囲みます。例を次に示します。
put '!em_replyto! hiroshi@home.com'; put '!em_replyto! ("hiroshi@home.com" "akiko@site.com")'; put '!em_replyto! Hiroshi Mori <mori@site.com>';
現在の属性でメッセージを送信します。デフォルトでは、ファイル参照名の終了時にメッセージを送信します。ファイル参照名は、次のFILEステートメントがDATAステップの終了を検出したときに終了します。このディレクティブを使用する場合、SASはこのディレクティブを実行するときにメッセージを送信し、DATAステップの最後にもう一度メッセージを送信します。このディレクティブは、条件を指定してメッセージを送信したり、複数のメッセージの送信にループを使用するDATAステッププログラムを作成する場合に便利です。
送信メッセージの返信電子メールアドレスを指定します。メッセージを配信できない場合は、送信者の電子メールアドレスに通知が送信されます。!EMSENDER!のデフォルト値は、SASを実行しているユーザーの電子メールアドレスになります。例を次に示します。
put '!EMSENDER! martin@home.com';
操作 | SENDER=にはFROM=とは異なるアドレスを指定できます。これにより、FROM=オプションで指定した電子メールアドレスにかわってメッセージを送信することが可能になります。 |
参照項目 | '!EM_FROM!from-address' |
メッセージの現在の件名を置き換えます。ディレクティブは一重引用符で囲む必要があります。件名に特殊文字または複数の単語(つまり、少なくともブランクが1つ含まれている)を使用する場合、件名のテキストを引用符で囲む必要があります。例を次に示します。
put '!em_subject! Sales'; put '!em_subject! "June Sales Report"';
電子メールメッセージのプライマリ受信者を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=電子メールオプションより優先されます。 |
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;
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;
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;
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;
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;
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;
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;
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;