我已经使用office.js构建了我的第一个Outlook.web.addin,
但是我需要一种将预定义的邮件发送给特定收件人而不向用户显示“邮件撰写”屏幕的方法...
下面的代码将打开“撰写”屏幕,但是如果不强迫用户按下“发送”按钮,我将无法发送邮件。
function sendMessage() {
if (Office.context.mailbox.item.itemType === Office.MailboxEnums.ItemType.Message) {
var mailbox = Office.context.mailbox;
var item = mailbox.item;
var itemId = item.itemId;
if (itemId === null || itemId == undefined) {
item.saveAsync(function(result) {
itemId = result.value;
});
}
Office.context.mailbox.displayNewMessageForm(
{
// Copy the To line from current item.
toRecipients: ['xxx@xxx.net'],
ccRecipients: ['yyy@yyyy.com'],
subject: 'Outlook add-ins are cool!',
htmlBody: 'Hello <b>World</b>!<br/><img src="cid:image.png"></i>',
attachments: [
{
type: 'item',
name: 'Suspected phishing mail',
itemId: itemId
}
]
});
} else {
return;
}
}
我需要将以上代码修改为:
function sendMessage() {
if (Office.context.mailbox.item.itemType === Office.MailboxEnums.ItemType.Message) {
var mailbox = Office.context.mailbox;
var item = mailbox.item;
var itemId = item.itemId;
if (itemId === null || itemId == undefined) {
item.saveAsync(function(result) {
itemId = result.value;
});
}
var newItem = mailbox.item;
newItem.to.setAsync(["xxx@xxx.net"]);
newItem.body.setAsync(["This is a test message"]);
newItem.addItemAttachmentAsync(
itemId,
"Welcome email"
);
newItem.saveAsync(
function callback(result) {
alert(result);
});
} else {
return;
}
}
我希望发送该消息而不允许用户更改消息中的任何详细信息。
答案 0 :(得分:2)
您可以通过使用CreateItem发出MakeEWSREquestAsync EWS请求来完成类似的事情。下面的示例将向您自己发送一封电子邮件,但是您可以根据需要进行修改。
$(".myBox").click(function() {
window.location = $(this).find("a").attr("href");
return false;
});
<div class="myBox">
blah blah blah.
<a href="http://google.com">link</a>
</div>