Files
MailComposer/emailjs-config.js
gowtham-darkseid 44ea4d2e64 feat: Complete Mail Composer with EmailJS integration
- 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
2025-09-09 21:17:46 +05:30

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 };
}
};