نود Send Email در N8N
نود Send Email یکی از کاربردیترین ابزارها برای ارسال ایمیل در ورکفلوهای n8n است. با این نود میتوانید اعلانها (Notification)، گزارشها، ایمیلهای تأیید، ارسال فایلهای خروجی و پیامهای خودکار را با کمترین تنظیمات و بهصورت کاملاً اتوماتیک ارسال کنید.
معرفی نود در N8N
نود Send Email برای ارسال ایمیل از طریق پروتکل SMTP استفاده میشود. این نود معمولاً در انتهای یک فرآیند یا در نقاطی که نیاز به اطلاعرسانی دارید قرار میگیرد.
- کارکرد اصلی: ارسال ایمیل (متن ساده یا HTML) به یک یا چند گیرنده، با امکان پیوست فایل
- دستهبندی نود: Action / Integration
- اهمیت در ورکفلوها: تبدیل رخدادها و خروجی پردازشها به اطلاعرسانی سریع و قابل پیگیری؛ برای تیمها، مشتریان، یا مدیر سیستم
موارد استفاده
سناریوهای واقعی و متداول
- اعلان خطا: اگر یک API پاسخ ناموفق داد یا پردازش شکست خورد، ایمیل هشدار برای تیم ارسال شود.
- گزارش روزانه/هفتگی: خروجی فروش، تعداد سفارشها یا لاگها جمعآوری شود و بهصورت ایمیل ارسال گردد.
- ارسال نتیجه فرم: دادههای فرم (Typeform/Google Forms/Webhook) دریافت و برای اپراتور ایمیل شود.
- ایمیل تأیید/اطلاع به مشتری: بعد از ثبت سفارش، پیام تأیید با جزئیات سفارش ارسال شود.
- ارسال فایل خروجی: فایل CSV/PDF تولیدشده (مثلاً خروجی گزارش) به مدیر یا مشتری ایمیل شود.
ترکیب با نودهای دیگر برای ورکفلوهای عملی
- Webhook Trigger → Set/Function → Send Email: دریافت داده و ارسال ایمیل فوری.
- Cron → HTTP Request → Code → Send Email: زمانبندی، دریافت داده از API، ساخت گزارش و ارسال ایمیل.
- IF → Send Email (هشدار) / NoOp: فقط در صورت عبور از یک شرط (مثلاً موجودی کمتر از حد) ایمیل ارسال شود.
- Read Binary File → Send Email (Attachment): ارسال فایل از مسیر مشخص بهعنوان پیوست.
- Merge → Send Email: ترکیب چند منبع داده و ارسال یک ایمیل تجمیعی.
پارامترها و تنظیمات
پارامترهای دقیق ممکن است با نسخه n8n یا نوع Credential کمی تفاوت داشته باشد، اما ساختار کلی و فیلدهای کلیدی در Send Email ثابت است.
اعتبارنامه (Credentials) و اتصال SMTP
- SMTP Host (String): آدرس سرور SMTP
مثال: smtp.gmail.com یا smtp.office365.com - SMTP Port (Number): پورت SMTP
مثال: 465 (SSL) یا 587 (STARTTLS) - Secure (Boolean): اتصال امن (SSL/TLS) در ابتدای ارتباط
مثال: برای پورت ۴۶۵ معمولاً true - User (String): نام کاربری SMTP (اغلب ایمیل کامل)
مثال: noreply@yourdomain.com - Password / App Password (String): رمز عبور یا App Password
مثال عملی: برای Gmail معمولاً باید App Password استفاده شود.
نکته مهم: بسیاری از سرویسها (مثل Gmail/Office365) محدودیت امنیتی دارند. در محیطهای سازمانی، استفاده از SMTP اختصاصی دامنه یا سرویسهای ایمیلی (SES، SendGrid، Mailgun) پایدارتر است.
فیلدهای اصلی ارسال ایمیل
- From (String): فرستنده ایمیل
کاربرد: مشخص میکند ایمیل از طرف چه آدرسی ارسال شود
مثال: “Automation Bot <noreply@yourdomain.com>” - To (String / Expression): گیرنده یا گیرندگان (با کاما جدا میشوند)
مثال: user@example.com یا user1@example.com, user2@example.com
مثال داینامیک: {{$json.email}} - Cc (String / Optional): گیرندههای رونوشت
مثال: manager@example.com - Bcc (String / Optional): گیرندههای رونوشت مخفی
مثال: audit@example.com - Subject (String / Expression): موضوع ایمیل
مثال: گزارش روزانه فروش – {{$now}} - Email Format (Option): نوع محتوا (Text یا HTML)
مثال: انتخاب HTML برای ایمیلهای قالبدار - Text (String): متن ساده ایمیل (در حالت Text)
مثال: سلام، گزارش آماده است. - HTML (String): متن HTML ایمیل (در حالت HTML)
مثال: <h3>گزارش</h3><p>فایل پیوست شد.</p> - Reply-To (String / Optional): آدرسی که پاسخ به آن برود
مثال: support@yourdomain.com
پیوستها (Attachments)
- Attachments (Collection): تعیین فایلهای پیوست از باینری یا مشخصات فایل
- Binary Property (String): نام پراپرتی باینری در آیتم ورودی که فایل داخل آن است
مثال: data یا attachment - File Name (String / Optional): نام فایل در ایمیل
مثال: report.csv - Content Type (String / Optional): نوع محتوا
مثال: text/csv یا application/pdf
نکته عملی: اگر فایل را با نودهایی مثل HTTP Request (دانلود فایل)، Read Binary File یا Generate File تولید میکنید، مطمئن شوید خروجی به شکل Binary در همان آیتمی باشد که Send Email دریافت میکند.
هدرها و تنظیمات تکمیلی
- Headers (Key-Value / Optional): افزودن هدرهای سفارشی ایمیل
مثال: X-Workflow-Id: 12345 - Priority (Option / Optional): اولویت ایمیل (اگر در نسخه شما موجود باشد)
مثال: High برای هشدارهای فوری
نکات مهم هنگام پیکربندی
- در فیلد To/Cc/Bcc از کاما برای چند گیرنده استفاده کنید و فاصلههای اضافی را کنترل کنید.
- اگر ایمیل HTML ارسال میکنید، برای سازگاری بهتر از HTML ساده و inline style استفاده کنید.
- اگر از Expression استفاده میشود، مطمئن شوید مقدار نهایی رشته معتبر ایمیل باشد و null نشود.
- در سرویسهای حساس به اسپم، از عنوان و متنهای مشکوک و لینکهای زیاد خودداری کنید.
ورودیها و خروجیها
ورودی (Input)
نود Send Email معمولاً به دادههای ورودی برای ساختن گیرنده، موضوع، متن و همچنین فایل پیوست نیاز دارد. این دادهها از نود قبلی میآید و میتواند شامل JSON و Binary باشد.
نمونه ساختار ورودی JSON (بدون پیوست)
{ "email": "user@example.com", "name": "Ali", "orderId": 10452, "total": 1250000}نمونه ورودی همراه با Binary برای پیوست
{ "json": { "email": "manager@example.com", "reportDate": "2026-02-02" }, "binary": { "data": { "fileName": "daily-report.csv", "mimeType": "text/csv", "fileSize": 20480 } }}خروجی (Output)
خروجی این نود معمولاً همان آیتم(های) ورودی را عبور میدهد و در بسیاری از موارد یک فیلد/متادیتا درباره نتیجه ارسال (بسته به نسخه و پیادهسازی) اضافه میشود. مهمترین نکته این است که اگر ارسال ایمیل موفق باشد، ورکفلو ادامه پیدا میکند و اگر شکست بخورد، خطا تولید میشود (و میتوانید با Error Workflow یا Try/Catch مدیریت کنید).
نمونه خروجی رایج (نمونه مفهومی)
{ "success": true, "to": "user@example.com", "subject": "Order 10452 Confirmation"}نکات پیشرفته و ترفندها
۱) ساخت ایمیل داینامیک با Expression
میتوانید فیلدهای To/Subject/HTML را با Expression از دادههای ورودی بسازید:
{ "to": "{{$json.email}}", "subject": "سفارش {{$json.orderId}} ثبت شد", "html": "<p>سلام {{$json.name}}،</p><p>مبلغ: {{$json.total}}</p>"}۲) ارسال یک ایمیل برای هر آیتم (Batch)
اگر نود قبلی چند آیتم تولید کند (مثلاً لیست کاربران)، Send Email میتواند برای هر آیتم یک ایمیل ارسال کند. برای کنترل فشار روی SMTP:
- از Split In Batches استفاده کنید (مثلاً ۱۰-۱۰ ارسال)
- بین batchها با Wait کمی تأخیر بگذارید
۳) ارسال پیوستهای تولیدشده در همان ورکفلو
- Spreadsheet File یا نودهای تولید فایل → خروجی Binary
- در Send Email، Binary Property را روی همان نام (مثلاً data) تنظیم کنید
۴) الگوی گزارش ایمیلی (HTML Template ساده و سازگار)
<div style="font-family: Arial, sans-serif; line-height: 1.8"> <h3 style="margin: 0 0 10px">گزارش روزانه</h3> <p>تاریخ: {{$json.reportDate}}</p> <ul> <li>تعداد سفارشها: {{$json.ordersCount}}</li> <li>مجموع فروش: {{$json.totalSales}}</li> </ul></div>۵) مدیریت خطا و مسیر جایگزین
برای سناریوهای حساس، ارسال ایمیل را داخل مسیر کنترل خطا قرار دهید:
- استفاده از Error Trigger یا Workflow Error (بسته به معماری شما) برای ارسال ایمیل هنگام شکست
- استفاده از IF برای جلوگیری از ارسال ایمیلهای تکراری
- ثبت لاگ با Data Store یا ارسال به Slack/Telegram در کنار ایمیل
محدودیتها و خطاها
محدودیتها
- محدودیت نرخ ارسال (Rate Limit): بسیاری از SMTPها تعداد ایمیل در دقیقه/روز را محدود میکنند.
- محدودیت حجم پیوست: معمولاً بین ۱۰ تا ۲۵ مگابایت (وابسته به سرویس).
- اسپم و Deliverability: اگر SPF/DKIM/DMARC روی دامنه تنظیم نباشد، احتمال رفتن به Spam زیاد میشود.
- سرویسهای خاص: برخی ارائهدهندهها احراز هویت خاص میخواهند (OAuth2). در این حالت SMTP ساده ممکن است کافی نباشد.
خطاهای رایج و راهحلها
- Authentication failed / Invalid login: نام کاربری/رمز اشتباه است یا نیاز به App Password دارید. برای Gmail اغلب باید App Password و 2FA فعال باشد.
- Connection timeout / ECONNREFUSED: Host/Port اشتباه است یا فایروال/شبکه دسترسی به SMTP را بسته است.
- SSL/TLS handshake failed: گزینه Secure با پورت همخوانی ندارد. برای ۴۶۵ معمولاً Secure روشن و برای ۵۸۷ معمولاً STARTTLS (Secure خاموش در ابتدای اتصال) استفاده میشود.
- Invalid recipient: مقدار To/Cc/Bcc خالی، null یا دارای جداکننده اشتباه است. خروجی Expression را بررسی کنید.
- Attachment missing: Binary Property اشتباه است یا فایل در آیتم دیگری قرار دارد. مسیر داده را با اجرای تست و بررسی Output نود قبلی کنترل کنید.
ایده ها
- سیستم هشدار هوشمند: اگر یک KPI (مثل خطای سرور یا افت فروش) از حد گذشت، ایمیل هشدار با نمودار/خلاصه ارسال شود.
- ارسال خودکار فاکتور: تولید PDF فاکتور و ارسال آن به مشتری بعد از پرداخت.
- گزارش تجمیعی تیمی: جمع کردن تسکهای انجامشده از Jira/Trello و ارسال گزارش روزانه برای مدیر.
- پیگیری فرمهای فروش: بعد از ثبت لید جدید، ایمیل داخلی به تیم فروش همراه با جزئیات و اولویتبندی.
- اتوماسیون عملیات: ارسال لیست بکاپها یا وضعیت سرویسها به ادمین در ساعات مشخص.
