Skip to content
Snippets Groups Projects
Commit cd9bece8 authored by Damyan Mitev's avatar Damyan Mitev :beach:
Browse files

add extractMessageID to penpal methods

parent 52d93b17
No related branches found
No related tags found
1 merge request!71[VCL] Sign generated v-card upon using a profile
...@@ -122,6 +122,27 @@ export function fixNewLines(mime) { ...@@ -122,6 +122,27 @@ export function fixNewLines(mime) {
return mime.replace(newline, "\r\n"); return mime.replace(newline, "\r\n");
} }
export function extractMessageID(mime) {
if (mime.startsWith("\r\n")) {
mime = mime.substring(2); //should not happen
}
const headersEndIndex = mime.indexOf("\r\n\r\n"); //the first empty line
if (headersEndIndex < 0) {
return null;
}
const mimeHeaders = mime.substring(0, headersEndIndex);
const headers = libmime.decodeHeaders(mimeHeaders);
let messageId = headers["Message-ID"];
if (Array.isArray(messageId) && messageId.length > 0) {
messageId = messageId[0];
}
if (messageId && typeof messageId === "string") {
messageId = messageId.replace(/^</, '').replace(/>$/, '');
return messageId;
}
return null;
}
export function parseMIME(mime) { export function parseMIME(mime) {
let mimeStart = 0; let mimeStart = 0;
let headersEnd = mime.indexOf("\r\n\r\n"); //the first empty line let headersEnd = mime.indexOf("\r\n\r\n"); //the first empty line
......
...@@ -7,6 +7,7 @@ import { ...@@ -7,6 +7,7 @@ import {
base64ToByteArray, base64ToByteArray,
byteArrayToBase64 byteArrayToBase64
} from "../utilities/stringUtilities"; } from "../utilities/stringUtilities";
import { extractMessageID } from "../helpers/mailparser";
const QRCode = require("qrcode"); const QRCode = require("qrcode");
const Penpal = require("penpal").default; const Penpal = require("penpal").default;
...@@ -1740,6 +1741,11 @@ const connection = Penpal.connectToParent({ ...@@ -1740,6 +1741,11 @@ const connection = Penpal.connectToParent({
"Currently authenticated identity" "Currently authenticated identity"
); );
}, },
extractMessageID(mime) {
return new Penpal.Promise(result => {
result(extractMessageID(mime));
});
},
stringToUtf8ByteArray(str) { stringToUtf8ByteArray(str) {
return new Penpal.Promise(result => { return new Penpal.Promise(result => {
result(stringToUtf8ByteArray(str)); result(stringToUtf8ByteArray(str));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment