mirror of
https://github.com/Gowtham-Darkseid/MailComposer.git
synced 2026-04-15 16:08:27 +02:00
44ea4d2e64
- Rich email composer with formatting tools (bold, italic, underline, links) - Multi-recipient support (To, CC, BCC fields) - File attachments with drag & drop support - Priority levels and email validation - Draft management with auto-save and cloud sync - Real email sending via EmailJS integration - Responsive design for mobile and desktop - Comprehensive error handling and fallback modes - Complete documentation and setup guides - Firebase integration ready for advanced features Features: ✅ Real email sending (EmailJS) ✅ Rich text editor ✅ File attachments ✅ Draft management ✅ Form validation ✅ Responsive UI ✅ Error handling ✅ Documentation
91 lines
2.5 KiB
JavaScript
91 lines
2.5 KiB
JavaScript
// EmailJS Configuration for immediate email sending
|
|
import emailjs from '@emailjs/browser';
|
|
|
|
// EmailJS configuration
|
|
// You'll need to get these from https://www.emailjs.com/
|
|
const EMAILJS_CONFIG = {
|
|
SERVICE_ID: 'service_ec76mbk',
|
|
TEMPLATE_ID: 'template_nlh9jpe',
|
|
PUBLIC_KEY: '_Jp47GztsNMnAlijT'
|
|
};
|
|
|
|
// Initialize EmailJS
|
|
export const initEmailJS = () => {
|
|
if (EMAILJS_CONFIG.PUBLIC_KEY && EMAILJS_CONFIG.PUBLIC_KEY !== 'your_public_key') {
|
|
emailjs.init(EMAILJS_CONFIG.PUBLIC_KEY);
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// Send email using EmailJS
|
|
export const sendEmailViaEmailJS = async (emailData) => {
|
|
try {
|
|
// Template parameters matching your EmailJS template exactly
|
|
const templateParams = {
|
|
to_email: emailData.to[0], // Single recipient for now
|
|
subject: emailData.subject,
|
|
message: emailData.message
|
|
};
|
|
|
|
console.log('Sending with EmailJS:', {
|
|
serviceId: EMAILJS_CONFIG.SERVICE_ID,
|
|
templateId: EMAILJS_CONFIG.TEMPLATE_ID,
|
|
params: templateParams
|
|
});
|
|
|
|
const result = await emailjs.send(
|
|
EMAILJS_CONFIG.SERVICE_ID,
|
|
EMAILJS_CONFIG.TEMPLATE_ID,
|
|
templateParams,
|
|
EMAILJS_CONFIG.PUBLIC_KEY
|
|
);
|
|
|
|
console.log('EmailJS Success:', result);
|
|
|
|
return {
|
|
success: true,
|
|
data: result
|
|
};
|
|
} catch (error) {
|
|
console.error('EmailJS Error Details:', error);
|
|
throw new Error(`EmailJS Error: ${error.text || error.message || 'Unknown error'}`);
|
|
}
|
|
};
|
|
|
|
// Check if EmailJS is configured
|
|
export const isEmailJSConfigured = () => {
|
|
return EMAILJS_CONFIG.SERVICE_ID !== 'your_service_id' &&
|
|
EMAILJS_CONFIG.TEMPLATE_ID !== 'your_template_id' &&
|
|
EMAILJS_CONFIG.PUBLIC_KEY !== 'your_public_key';
|
|
};
|
|
|
|
// Test EmailJS configuration
|
|
export const testEmailJS = async () => {
|
|
try {
|
|
const testParams = {
|
|
to_email: 'test@example.com',
|
|
subject: 'Test Email from Mail Composer',
|
|
message: 'This is a test message to verify EmailJS is working correctly.'
|
|
};
|
|
|
|
console.log('Testing EmailJS with:', {
|
|
service: EMAILJS_CONFIG.SERVICE_ID,
|
|
template: EMAILJS_CONFIG.TEMPLATE_ID,
|
|
publicKey: EMAILJS_CONFIG.PUBLIC_KEY
|
|
});
|
|
|
|
const result = await emailjs.send(
|
|
EMAILJS_CONFIG.SERVICE_ID,
|
|
EMAILJS_CONFIG.TEMPLATE_ID,
|
|
testParams,
|
|
EMAILJS_CONFIG.PUBLIC_KEY
|
|
);
|
|
|
|
return { success: true, result };
|
|
} catch (error) {
|
|
console.error('EmailJS Test Failed:', error);
|
|
return { success: false, error: error.text || error.message };
|
|
}
|
|
};
|