目標
SuiteScript 2.xを使用して電子メールを送信する方法(電子メールにファイルを添付する方法を含む)を示します。
概要
NetSuiteは、開発者がシステムからEメールをプログラム的に送信できるN/emailモジュールを提供します。この機能は、通常、通知、承認、確認および自動通信に使用されます。
この記事では、次の方法を示します。
- 受信者レコードを動的に作成します。
- ファイル・キャビネットから既存のファイルをロードする
- SuiteScript 2.xを使用してファイルを添付した電子メールを送信します。
スクリプトの説明
このスクリプトは以下の作業を実行します。
- 必要なモジュールを定義しますこのスクリプトは、N/email、N/recordおよびN/fileモジュールを使用して、電子メールの送信、レコード作成およびファイル・ロードを処理します。
- 受信者レコードの作成顧客レコードは動的に作成され、電子メール・アドレスが割り当てられます。このレコードは電子メール受信者として使用されます。
- 添付ファイルをロード既存のファイルは、内部IDを使用してファイル・キャビネットからロードされます。
- 電子メールの送信電子メールは、email.send()メソッド(ロードされたファイルを添付として含め、電子メールを関連レコードにリンク)を使用して送信されます。
スクリプト:
/** - @NApiVersion 2 .1
- @NScriptType ScheduledScript
*/ define(['N/email', 'N/record', 'N/file', 'N/log'], (email, record, file, log) => { const execute = (scriptContext) => { try { const senderId = 7; // -5 = default admin in some accounts; const recipientEmail = 'reciepient_email@company .com'; const timeStamp = new Date().getUTCMilliseconds(); // 1) 受信者エンティティとして使用する顧客レコードを作成する const recipient = record.create({ type: record.Type.CUSTOMER, isDynamic: true }); recipient.setValue({ fieldId: 'subsidiary', value: 1 }); // use number, not string recipient.setValue({ fieldId: 'companyname', value: 'Test Company ' + timeStamp }); recipient.setValue({ fieldId: 'email', value: recipientEmail }); const recipientId = recipient.save(); log.debug('Customer created (recipientId)', recipientId); // 2) 添付するファイルをファイルキャビネットから読み込む const fileObj = file.load({ id: 2392 }); log.debug('File loaded', { id: fileObj.id, name: fileObj.name }); // 3) Eメールを添付と共に送信する email.send({ author: senderId, recipients: recipientId, // you can also use recipientEmail directly subject: 'Test Sample Email Module', body: 'email body', attachments: [fileObj], relatedRecords: { entityId: recipientId } }); log.audit('Email sent', { author: senderId, recipientId, recipientEmail });} catch (e) { log.error('Script failed', { name: e.name, message: e.message, stack: e.stack }); throw e;}
}; return { execute }; }); |
|---|
主な注意
- 「作成者」フィールドは、有効なNetSuiteユーザーまたは従業員IDを参照する必要があります。
- 添付ファイルは、ファイル・キャビネットにすでに存在している必要があります。
- 受信者には、レコードの内部IDまたはダイレクト電子メール・アドレスを指定できます。
- このアプローチを拡張して、複数の添付または受信者を含めることができます。
免責事項: 本書に記載のサンプル・コードは、法律で認められている最大限の範囲において、いかなる種類の保証もなしに「現状有姿」で提供されます。 Oracle + NetSuite Inc.は、開発プラットフォームでのサンプル・コードの実装または独自のWebサーバー構成の使用において、開発者が個々の成功を保証するものではありません。
Oracle + NetSuite Inc.は、サンプル・コードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性について、一切の保証、保証または表明を行いません。Oracle + NetSuite Inc.は、明示または黙示を問わず、いかなる保証もいたしません。商品性、特定目的への適合性、コードに関連する保証、またはその関連サービスもしくはソフトウェアに対する保証のいずれも免責します。
Oracle + NetSuite Inc.は、お客様もしくはサンプル・コードに関係する者による行為から生じるいかなる種類の直接的、間接的、結果的損害または費用についても、責任を負わないものとします。
「NetSuiteの始め方 」カテゴリのSuiteCloudセクションにアクセスして、NetSuiteの基本的な機能を順を追って説明する初心者向けのガイドを探ります。