feat: setup plunk for transactional/marketing emails
This commit is contained in:
8
packages/email/src/cloudMailerClient.tsx
Normal file
8
packages/email/src/cloudMailerClient.tsx
Normal file
@@ -0,0 +1,8 @@
|
||||
import Plunk from "@plunk/node";
|
||||
|
||||
export const cloudMailerClient =
|
||||
process.env.NEXT_PUBLIC_KAN_ENV === "cloud"
|
||||
? new Plunk(process.env.PLUNK_API_KEY ?? "", {
|
||||
baseUrl: process.env.PLUNK_API_URL,
|
||||
})
|
||||
: null;
|
||||
@@ -1,3 +1,4 @@
|
||||
export const name = "email";
|
||||
|
||||
export { sendEmail } from "./sendEmail";
|
||||
export { cloudMailerClient } from "./cloudMailerClient";
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { render } from "@react-email/render";
|
||||
import nodemailer from "nodemailer";
|
||||
|
||||
import { cloudMailerClient } from "./cloudMailerClient";
|
||||
import JoinWorkspaceTemplate from "./templates/join-workspace";
|
||||
import MagicLinkTemplate from "./templates/magic-link";
|
||||
import ResetPasswordTemplate from "./templates/reset-password";
|
||||
@@ -44,6 +45,15 @@ export const sendEmail = async (
|
||||
html,
|
||||
};
|
||||
|
||||
if (cloudMailerClient) {
|
||||
const response = await cloudMailerClient.emails.send({
|
||||
...options,
|
||||
body: html,
|
||||
});
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
const response = await transporter.sendMail(options);
|
||||
|
||||
if (!response.accepted.length) {
|
||||
|
||||
Reference in New Issue
Block a user