1 | import sendgrid from "npm:@sendgrid/mail@^7.7.0"; |
2 |
|
3 | |
4 | * @param is_message_html If `true` then the message will be sent and parsed as HTML, |
5 | * otherwise it will be sent as plain text. |
6 | */ |
7 | type Sendgrid = { |
8 | token: string; |
9 | }; |
10 | export async function main( |
11 | api_token: Sendgrid, |
12 | from: string, |
13 | to: string, |
14 | subject: string, |
15 | message: string, |
16 | is_message_html: boolean, |
17 | ) { |
18 | sendgrid.setApiKey(api_token.token); |
19 | const messageObject: Record<string, string> = { to, from, subject }; |
20 | messageObject[is_message_html ? "html" : "text"] = message; |
21 |
|
22 | try { |
23 | return await sendgrid.send(messageObject); |
24 | } catch (error) { |
25 | throw Error("\n" + JSON.stringify(error?.response?.body || error)); |
26 | } |
27 | } |
28 |
|