Skip to content

Commit

Permalink
Official Mailgun SDK + EU host support
Browse files Browse the repository at this point in the history
  • Loading branch information
infomiho committed Sep 24, 2024
1 parent 5a79eca commit c02101d
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
import { NodeMailgun } from "ts-mailgun";
import Mailgun from 'mailgun.js';
import { getDefaultFromField } from "../helpers.js";
import type { MailgunEmailProvider, EmailSender } from "../types";

// PRIVATE API
export function initMailgunEmailSender(
config: MailgunEmailProvider
): EmailSender {
const mailer = new NodeMailgun(config.apiKey, config.domain);

const defaultFromField = getDefaultFromField();

const mailgun = new Mailgun(FormData);

const mailer = mailgun.client({
username: 'api',
key: config.apiKey,
url: config.apiUrl,
});

return {
async send(email) {
const fromField = email.from || defaultFromField;
mailer.fromEmail = fromField.email;
mailer.fromTitle = fromField.name;
mailer.init();
return mailer.send(email.to, email.subject, email.html);
return mailer.messages.create(config.domain, {
from: `${fromField.name} <${fromField.email}>`,
to: [email.to],
subject: email.subject,
text: email.text,
html: email.html,
})
},
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export type MailgunEmailProvider = {
type: "mailgun";
apiKey: string;
domain: string;
apiUrl?: string;
};

// PRIVATE API
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ const emailProvider = {
type: "mailgun",
apiKey: process.env.MAILGUN_API_KEY,
domain: process.env.MAILGUN_DOMAIN,
apiUrl: process.env.MAILGUN_API_URL,
} as const;
{=/ isMailgunProviderUsed =}
{=# isDummyProviderUsed =}
Expand Down
20 changes: 10 additions & 10 deletions waspc/examples/todoApp/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ mailgun =
}
where
mailgunVersionRange :: SV.Range
mailgunVersionRange = SV.Range [SV.backwardsCompatibleWith (SV.Version 0 5 1)]
mailgunVersionRange = SV.Range [SV.backwardsCompatibleWith (SV.Version 10 2 3)]

mailgunDependency :: AS.Dependency.Dependency
mailgunDependency = AS.Dependency.make ("ts-mailgun", show mailgunVersionRange)
mailgunDependency = AS.Dependency.make ("mailgun.js", show mailgunVersionRange)

dummy :: EmailSenderProvider
dummy =
Expand Down

0 comments on commit c02101d

Please sign in to comment.