SuiteScript email.send 在外部 URL suitelet 中不工作
SuiteScript email.send not working in External URL suitelet
我无法从外部 url 版套件发送电子邮件。内部 url 一切正常,但每当我使用外部 url 时,都无法发送电子邮件。没有错误,发送邮件后的代码正确执行。我在 Production 和 Sandbox 帐户上都试过了,我以管理员身份执行它。 email.send 对外部 url 有限制吗?有什么解决方法吗?我是 NetSuite 新手。
var currentuser = 1111;
var recipient = 'some.email@email.com';
var subject = 'subject';
var EmailBody = '<p> email content </p>';
email.send({
author: currentuser,
recipients: recipient,
subject: subject,
body: EmailBody,
});
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/record', 'N/email', 'N/log', 'N/runtime'],
function(record, email, log, runtime) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
var req = context.request;
var res = context.response;
var userObj = runtime.getCurrentUser();
log.debug('user is: ', JSON.stringify(userObj));
log.debug('role', userObj.role);
email.send({
author: 5,
recipients: 5,
subject: 'Test suitelet email',
body: 'suitelet email body',
});
log.debug('Done','email sent');
}
return {
onRequest: onRequest
};
});
重要的是要注意,在测试中,开发帐户的路由电子邮件选项设置为向登录用户发送电子邮件,并且它是硬编码的。在 Sandbox 和 Release Preview 帐户上,为了在使用 Suitelet 的外部 URL 时发送电子邮件,“发送电子邮件至”字段应在“设置”>“公司”>“电子邮件首选项”>“电子邮件选项”下设置为特定电子邮件地址。
由于这个值是硬编码在测试驱动器和开发帐户上的,因此无法验证当前登录用户的会话,因为在 email.send(options) 或 nlapiSendEmail 时没有这样的用户被触发。
请注意,Production 帐户没有此类限制,功能将执行并成功发送电子邮件。
可以使用示例 Suitelet 代码在沙盒、发布预览、生产和开发帐户上测试此行为。请告诉我这是怎么回事!
我无法从外部 url 版套件发送电子邮件。内部 url 一切正常,但每当我使用外部 url 时,都无法发送电子邮件。没有错误,发送邮件后的代码正确执行。我在 Production 和 Sandbox 帐户上都试过了,我以管理员身份执行它。 email.send 对外部 url 有限制吗?有什么解决方法吗?我是 NetSuite 新手。
var currentuser = 1111;
var recipient = 'some.email@email.com';
var subject = 'subject';
var EmailBody = '<p> email content </p>';
email.send({
author: currentuser,
recipients: recipient,
subject: subject,
body: EmailBody,
});
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/record', 'N/email', 'N/log', 'N/runtime'],
function(record, email, log, runtime) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
var req = context.request;
var res = context.response;
var userObj = runtime.getCurrentUser();
log.debug('user is: ', JSON.stringify(userObj));
log.debug('role', userObj.role);
email.send({
author: 5,
recipients: 5,
subject: 'Test suitelet email',
body: 'suitelet email body',
});
log.debug('Done','email sent');
}
return {
onRequest: onRequest
};
});
重要的是要注意,在测试中,开发帐户的路由电子邮件选项设置为向登录用户发送电子邮件,并且它是硬编码的。在 Sandbox 和 Release Preview 帐户上,为了在使用 Suitelet 的外部 URL 时发送电子邮件,“发送电子邮件至”字段应在“设置”>“公司”>“电子邮件首选项”>“电子邮件选项”下设置为特定电子邮件地址。
由于这个值是硬编码在测试驱动器和开发帐户上的,因此无法验证当前登录用户的会话,因为在 email.send(options) 或 nlapiSendEmail 时没有这样的用户被触发。
请注意,Production 帐户没有此类限制,功能将执行并成功发送电子邮件。
可以使用示例 Suitelet 代码在沙盒、发布预览、生产和开发帐户上测试此行为。请告诉我这是怎么回事!