Skip to content

Commit

Permalink
Fix for issue #196 (#197)
Browse files Browse the repository at this point in the history
  • Loading branch information
kroese authored Feb 14, 2024
1 parent eaa39a1 commit 2afa768
Showing 1 changed file with 43 additions and 14 deletions.
57 changes: 43 additions & 14 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ async function getAttachments(attachments) {
return files.map(f => ({ filename: path.basename(f), path: f, cid: f.replace(/^.*[\\\/]/, '')}))
}

function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}

async function main() {
try {
let serverAddress = core.getInput("server_address")
Expand Down Expand Up @@ -118,20 +124,43 @@ async function main() {
debug: nodemailerdebug,
})

const info = await transport.sendMail({
from: getFrom(from, username),
to: to,
subject: getText(subject, false),
cc: cc ? cc : undefined,
bcc: bcc ? bcc : undefined,
replyTo: replyTo ? replyTo : undefined,
inReplyTo: inReplyTo ? inReplyTo : undefined,
references: inReplyTo ? inReplyTo : undefined,
text: body ? getText(body, false) : undefined,
html: htmlBody ? getText(htmlBody, convertMarkdown) : undefined,
priority: priority ? priority : undefined,
attachments: attachments ? (await getAttachments(attachments)) : undefined,
})
var i = 1;
while (true) {
try {
const info = await transport.sendMail({
from: getFrom(from, username),
to: to,
subject: getText(subject, false),
cc: cc ? cc : undefined,
bcc: bcc ? bcc : undefined,
replyTo: replyTo ? replyTo : undefined,
inReplyTo: inReplyTo ? inReplyTo : undefined,
references: inReplyTo ? inReplyTo : undefined,
text: body ? getText(body, false) : undefined,
html: htmlBody ? getText(htmlBody, convertMarkdown) : undefined,
priority: priority ? priority : undefined,
attachments: attachments ? (await getAttachments(attachments)) : undefined,
});
break;
} catch (error) {
if (!error.message.includes("Try again later,")) {
core.setFailed(error.message)
break;
}
if (i > 10) {
core.setFailed(error.message)
break;
}
console.log("Received: " + error.message);
if (i < 2) {
console.log("Trying again in a minute...");
} else {
console.log("Trying again in " + i + " minutes...");
}
await sleep(i * 60000);
i++;
}
}
} catch (error) {
core.setFailed(error.message)
}
Expand Down

0 comments on commit 2afa768

Please sign in to comment.