نظرة عامة على الميزات
أرسل رسائل البريد الإلكتروني والإشعارات إلى مستخدميك.
ملاحظة: هذا محتوى تجريبي/مؤقت لأغراض العرض التوضيحي.
يتضمّن التطبيق وظائف البريد الإلكتروني للرسائل المعاملاتية وإشعارات المستخدمين.
إعداد البريد الإلكتروني
البريد الإلكتروني عبر Supabase (الافتراضي)
تُرسَل رسائل البريد الإلكتروني افتراضيًا عبر Supabase:
- رسائل المصادقة (التسجيل، وإعادة تعيين كلمة المرور، والروابط السحرية)
- التحقق من البريد الإلكتروني
- تأكيد تغيير البريد الإلكتروني
خادم SMTP مخصّص
بالنسبة إلى الرسائل المعاملاتية، اضبط مزوّد SMTP الخاص بك:
# .env SMTP_HOST=smtp.example.com SMTP_PORT=587 SMTP_USER=your-username SMTP_PASSWORD=your-password SMTP_FROM_EMAIL=noreply@yourdomain.com SMTP_FROM_NAME=Your App Name
إرسال رسائل البريد الإلكتروني
استخدام خدمة البريد الإلكتروني
import { sendEmail } from '~/lib/email/send-email';
await sendEmail({
to: 'user@example.com',
subject: 'Welcome to Our App',
html: '<h1>Welcome!</h1><p>Thanks for signing up.</p>',
});
استخدام قوالب البريد الإلكتروني
أنشئ قوالب بريد إلكتروني قابلة لإعادة الاستخدام:
// lib/email/templates/welcome-email.tsx
import { EmailTemplate } from '~/lib/email/email-template';
interface WelcomeEmailProps {
name: string;
loginUrl: string;
}
export function WelcomeEmail({ name, loginUrl }: WelcomeEmailProps) {
return (
<EmailTemplate>
<h1>Welcome, {name}!</h1>
<p>We're excited to have you on board.</p>
<a href={loginUrl}>Get Started</a>
</EmailTemplate>
);
}
// Send the email
import { render } from '@react-email/render';
import { WelcomeEmail } from '~/lib/email/templates/welcome-email';
const html = render(
<WelcomeEmail name="John" loginUrl="https://app.com/login" />
);
await sendEmail({
to: 'john@example.com',
subject: 'Welcome to Our App',
html,
});
أنواع رسائل البريد الإلكتروني
الرسائل المعاملاتية
رسائل تُرسَل استجابةً لإجراءات المستخدم:
- رسائل الترحيب
- تأكيدات الطلبات
- إعادة تعيين كلمات المرور
- إشعارات الحساب
- تحديثات الفوترة
الرسائل التسويقية
رسائل ترويجية ورسائل لتعزيز التفاعل:
- تحديثات المنتج
- الإعلان عن الميزات
- النشرات الإخبارية
- سلاسل رسائل الإعداد الأولي
مزوّدو البريد الإلكتروني
المزوّدون الموصى بهم
Resend - واجهة برمجة تطبيقات بريد إلكتروني ملائمة للمطوّرين
npm install resend
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
await resend.emails.send({
from: 'noreply@yourdomain.com',
to: 'user@example.com',
subject: 'Welcome',
html: emailHtml,
});
SendGrid - منصة بريد إلكتروني شاملة
npm install @sendgrid/mail
import sgMail from '@sendgrid/mail';
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
await sgMail.send({
to: 'user@example.com',
from: 'noreply@yourdomain.com',
subject: 'Welcome',
html: emailHtml,
});
Postmark - بريد إلكتروني معاملاتي سريع
npm install postmark
الإشعارات داخل التطبيق
نظام الإشعارات
أرسل إشعارات داخل التطبيق إلى المستخدمين:
import { createNotification } from '~/lib/notifications';
await createNotification({
userId: user.id,
title: 'New Message',
message: 'You have a new message from John',
type: 'info',
link: '/messages/123',
});
أنواع الإشعارات
type NotificationType = 'info' | 'success' | 'warning' | 'error';
await createNotification({
userId: user.id,
title: 'Payment Successful',
message: 'Your subscription has been renewed',
type: 'success',
});
جلب الإشعارات
import { getUserNotifications } from '~/lib/notifications';
const notifications = await getUserNotifications(userId, {
limit: 10,
unreadOnly: true,
});
التعليم كمقروء
import { markNotificationAsRead } from '~/lib/notifications';
await markNotificationAsRead(notificationId);
الإشعارات الفورية
استخدم Supabase Realtime لإرسال الإشعارات بشكل فوري:
'use client';
import { useEffect } from 'react';
import { useSupabase } from '@kit/supabase/hooks/use-supabase';
export function NotificationListener() {
const supabase = useSupabase();
useEffect(() => {
const channel = supabase
.channel('notifications')
.on(
'postgres_changes',
{
event: 'INSERT',
schema: 'public',
table: 'notifications',
filter: `user_id=eq.${userId}`,
},
(payload) => {
// Show toast notification
toast.info(payload.new.title);
}
)
.subscribe();
return () => {
supabase.removeChannel(channel);
};
}, [supabase]);
return null;
}
أفضل ممارسات قوالب البريد الإلكتروني
- اجعلها بسيطة - نص عادي وحدّ أدنى من HTML
- متجاوبة مع الأجهزة المحمولة - تُقرأ معظم الرسائل على الأجهزة المحمولة
- دعوات واضحة لاتخاذ إجراء - اجعل أزرار الإجراءات بارزة
- أضف لمسة شخصية - استخدم اسم المستخدم والبيانات ذات الصلة
- اختبر طريقة العرض - تحقّق منها عبر برامج البريد الإلكتروني المختلفة
- ضمّن نسخة نصية - وفّر دائمًا بديلًا نصيًا
- رابط إلغاء الاشتراك - مطلوب في الرسائل التسويقية
اختبار رسائل البريد الإلكتروني
التطوير المحلي
أثناء التطوير، يلتقط InBucket رسائل البريد الإلكتروني:
http://localhost:54324
معاينة رسائل البريد الإلكتروني
استخدم React Email لمعاينة القوالب:
npm run email:dev
تفضّل بزيارة http://localhost:3001 لمشاهدة معاينات الرسائل.
نصائح لضمان وصول الرسائل
- فعّل مصادقة نطاقك - اضبط سجلات SPF وDKIM وDMARC
- هيّئ سمعة نطاقك تدريجيًا - ابدأ بأحجام إرسال منخفضة
- راقب معدلات الارتداد - أبقِها دون 5%
- تجنّب محفّزات تصفية الرسائل المزعجة - لا تكتب بأحرف كبيرة بالكامل ولا تُفرط في علامات الترقيم
- قدّم قيمة حقيقية - لا ترسل إلا رسائل ملائمة ومفيدة
- سهولة إلغاء الاشتراك - اجعله ممكنًا بنقرة واحدة