44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
"use server"
|
|
|
|
import { Resend } from "resend"
|
|
import { validateString } from "@/lib/utils";
|
|
import OrderFormEmail from "../emailTemplates/order-form-email";
|
|
import React from "react";
|
|
import 'dotenv/config';
|
|
|
|
|
|
const resend = new Resend(process.env.RESEND_API_KEY);
|
|
|
|
|
|
export const sendEmail = async (formData: FormData) => {
|
|
//rate limit
|
|
|
|
//only allow authenticated user as well
|
|
|
|
const senderEmail = formData.get('senderEmail');
|
|
const message = formData.get('message');
|
|
|
|
if (!validateString(senderEmail, 500)){
|
|
return{ error: "Invalid sender Email",};
|
|
}
|
|
if (!validateString(message, 5000)){
|
|
return{ error: "Invalid message",};
|
|
}
|
|
|
|
// console.log("Running on sever");
|
|
// console.log(formData.get("senderEmail"));
|
|
// console.log(formData.get("message"));
|
|
|
|
try {
|
|
await resend.emails.send({
|
|
from:"Order Form <orders@kevosattire.com>",
|
|
to:"arcjcb11@gmail.com",
|
|
subject: "New Order",
|
|
reply_to: senderEmail as string,
|
|
// text: message as string,
|
|
react: React.createElement(OrderFormEmail, {message: message as string, senderEmail: senderEmail as string}),
|
|
});
|
|
} catch (error: unknown){
|
|
return console.log(error)
|
|
}
|
|
}; |