fix(emailjs): send emails sequentially and add reply_to

This commit is contained in:
google-labs-jules[bot]
2026-01-24 09:30:22 +00:00
parent 7ee61ed342
commit 043a1b2b1e
3 changed files with 144 additions and 26 deletions

View File

@@ -2,15 +2,10 @@ import { useState, type FormEvent } from 'react';
import { motion } from 'motion/react';
import emailjs from '@emailjs/browser';
import { useTranslation } from '../i18n';
import { config } from '../config';
import { Button, Input, Textarea } from '../components/ui';
import styles from './Contact.module.css';
// EmailJS configuration
const EMAILJS_SERVICE_ID = import.meta.env.VITE_EMAILJS_SERVICE_ID;
const EMAILJS_TEMPLATE_ID_ADMIN = import.meta.env.VITE_EMAILJS_TEMPLATE_ID_ADMIN;
const EMAILJS_TEMPLATE_ID_USER = import.meta.env.VITE_EMAILJS_TEMPLATE_ID_USER;
const EMAILJS_PUBLIC_KEY = import.meta.env.VITE_EMAILJS_PUBLIC_KEY;
interface FormData {
name: string;
email: string;
@@ -72,32 +67,33 @@ export function Contact() {
try {
const templateParams = {
from_name: formData.name,
from_email: formData.email,
subject: formData.subject,
name: formData.name,
email: formData.email,
title: formData.subject,
message: formData.message,
reply_to: formData.email,
};
await Promise.all([
// Send to Admin
emailjs.send(
EMAILJS_SERVICE_ID,
EMAILJS_TEMPLATE_ID_ADMIN,
templateParams,
EMAILJS_PUBLIC_KEY
),
// Send Auto-reply to User
emailjs.send(
EMAILJS_SERVICE_ID,
EMAILJS_TEMPLATE_ID_USER,
templateParams,
EMAILJS_PUBLIC_KEY
),
]);
// Send to Admin
await emailjs.send(
config.emailJs.serviceId,
config.emailJs.templateIdAdmin,
templateParams,
{ publicKey: config.emailJs.publicKey }
);
// Send Auto-reply to User
await emailjs.send(
config.emailJs.serviceId,
config.emailJs.templateIdUser,
templateParams,
{ publicKey: config.emailJs.publicKey }
);
setSubmitStatus('success');
setFormData({ name: '', email: '', subject: '', message: '' });
} catch {
} catch (error) {
console.error('EmailJS Error:', error);
setSubmitStatus('error');
} finally {
setIsSubmitting(false);