SuiteScript email.send无法在外部URL suitelet中工作



我无法从suitelet的外部url版本发送电子邮件。内部url一切正常,但每当我使用外部url时,都不会发送电子邮件。没有错误,发送电子邮件后的代码执行正确。我在Production和Sandbox帐户上都尝试过,我以管理员的身份执行它。电子邮件发送是否受外部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(选项(或nlapiSendEmail时没有这样的用户。

请注意,生产帐户没有这样的限制,功能将被执行,电子邮件将被成功发送。

通过使用示例Suitelet代码,可以在Sandbox、Release Preview、Production和开发帐户上测试这种行为。请告诉我进展如何!

最新更新