我无法从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和开发帐户上测试这种行为。请告诉我进展如何!