fix: tentativo di fix per il riconoscimento del ticket ma otrs è stronzo-merda. feat: nella pagina di anteprima del ticket, aggiunto pulsante per aprire in una scheda interna.
This commit is contained in:
+26
-3
@@ -60,7 +60,7 @@ async function getAccessToken() {
|
||||
* @param {Array} [options.inlineImages] - [{ cid, content (base64), contentType }]
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function sendMail({ to, cc = [], bcc = [], subject, bodyHtml, attachments = [], inlineImages = [], inReplyTo, references }) {
|
||||
async function sendMail({ to, cc = [], bcc = [], subject, bodyHtml, attachments = [], inlineImages = [], inReplyTo, references, messageId }) {
|
||||
const sender = process.env.AZURE_MAIL_SENDER;
|
||||
if (!sender) throw new Error('AZURE_MAIL_SENDER non configurato nel .env');
|
||||
|
||||
@@ -115,7 +115,7 @@ async function sendMail({ to, cc = [], bcc = [], subject, bodyHtml, attachments
|
||||
attachments: allAttachments,
|
||||
internetMessageHeaders: headers.length ? headers : undefined,
|
||||
},
|
||||
saveToSentItems: false,
|
||||
saveToSentItems: true,
|
||||
};
|
||||
|
||||
const url = `https://graph.microsoft.com/v1.0/users/${encodeURIComponent(sender)}/sendMail`;
|
||||
@@ -130,7 +130,30 @@ async function sendMail({ to, cc = [], bcc = [], subject, bodyHtml, attachments
|
||||
});
|
||||
|
||||
if (res.status === 202) {
|
||||
return; // Successo (Graph API risponde con 202 No Content)
|
||||
let actualMessageId = messageId;
|
||||
try {
|
||||
// Wait 1.5 seconds for Exchange to process and place it in Sent Items
|
||||
await new Promise(resolve => setTimeout(resolve, 1500));
|
||||
|
||||
const searchUrl = `https://graph.microsoft.com/v1.0/users/${encodeURIComponent(sender)}/mailFolders/sentItems/messages?$filter=subject eq '${subject.replace(/'/g, "''")}'&$top=1&$select=internetMessageId`;
|
||||
const searchRes = await fetch(searchUrl, {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${token}`,
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
});
|
||||
|
||||
if (searchRes.ok) {
|
||||
const searchData = await searchRes.json();
|
||||
if (searchData.value && searchData.value.length > 0) {
|
||||
actualMessageId = searchData.value[0].internetMessageId;
|
||||
}
|
||||
}
|
||||
} catch (searchErr) {
|
||||
console.warn('[Graph Mailer] Failed to retrieve actual InternetMessageId from Sent Items:', searchErr.message);
|
||||
}
|
||||
|
||||
return { internetMessageId: actualMessageId };
|
||||
}
|
||||
|
||||
const errText = await res.text();
|
||||
|
||||
Reference in New Issue
Block a user