جیمیل
Gmail
ارسال و دریافت ایمیل، مدیریت صندوق پستی Gmail
نمای کلی
نود Gmail یکی از پرکاربردترین نودهای n8n برای کار با ایمیل است.
قابلیتهای کلیدی:
- ارسال ایمیل با پیوست
- دریافت و خواندن ایمیلها
- جستجو در صندوق پستی
- مدیریت لیبلها (Labels)
- علامتگذاری به عنوان خوانده شده/نشده
- حذف ایمیلها
- پاسخ به ایمیلها
کاربردها:
- سیستم اعلانهای ایمیلی
- پردازش خودکار ایمیلهای دریافتی
- ارسال خبرنامه
- یادآوریهای ایمیلی
- پشتیبانی مشتری از طریق ایمیل
- پردازش فرمهای وب
مزایا:
- رایگان تا 2000 ایمیل در روز
- قابل اطمینان
- فیلترهای قدرتمند
- یکپارچه با سرویسهای گوگل
احراز هویت
احراز هویت Gmail
Gmail از OAuth2 استفاده میکند که امنترین روش احراز هویت است.
روش 1: OAuth2 (توصیه میشود)
#### مرحله 1: ایجاد پروژه در Google Cloud Console
- 1به [Google Cloud Console](https://console.cloud.google.com/) بروید
- 2پروژه جدید بسازید یا یکی از پروژههای موجود را انتخاب کنید
- 3به APIs & Services > OAuth consent screen بروید
- 4نوع User Type را External انتخاب کنید
- 5اطلاعات اپلیکیشن را پر کنید (نام، ایمیل)
- 6Scopes را اضافه کنید:
https://www.googleapis.com/auth/gmail.send(ارسال ایمیل)https://www.googleapis.com/auth/gmail.readonly(خواندن ایمیل)https://www.googleapis.com/auth/gmail.modify(ویرایش ایمیل)
- 1Test users را اضافه کنید (ایمیل خودتان)
#### مرحله 2: ایجاد OAuth Credentials
- 1به APIs & Services > Credentials بروید
- 2Create Credentials > OAuth client ID
- 3Application type: Web application
- 4نام دلخواه بگذارید
- 5Authorized redirect URIs:
- برای n8n cloud:
https://your-n8n.app/rest/oauth2-credential/callback - برای self-hosted:
https://your-domain.com/rest/oauth2-credential/callback
- 1Create کنید
- 2Client ID و Client Secret را کپی کنید
#### مرحله 3: فعال کردن Gmail API
- 1به APIs & Services > Library بروید
- 2"Gmail API" را جستجو کنید
- 3روی Gmail API کلیک کنید
- 4Enable کنید
#### مرحله 4: تنظیم در n8n
- 1در n8n به Credentials بروید
- 2Gmail OAuth2 API را انتخاب کنید
- 3اطلاعات را وارد کنید:
- Client ID: از مرحله 2
- Client Secret: از مرحله 2
- 1Connect my account کلیک کنید
- 2با اکانت Gmail خود وارد شوید
- 3دسترسیها را تایید کنید
روش 2: Service Account (برای کاربرد سازمانی)
برای استفاده در Google Workspace (G Suite):
- 1Service Account در Google Cloud Console بسازید
- 2JSON Key فایل دانلود کنید
- 3Domain-wide delegation فعال کنید
- 4در n8n، Service Account JSON را وارد کنید
روش 3: App Password (برای تست)
⚠️ توصیه نمیشود: امنیت کمتر
- 1به تنظیمات اکانت Google بروید
- 2Security > 2-Step Verification فعال کنید
- 3App Passwords ایجاد کنید
- 4Password تولید شده را کپی کنید
نکات امنیتی:
- OAuth2 امنترین روش است
- هرگز Client Secret را به اشتراک نگذارید
- از 2-Step Verification استفاده کنید
- دسترسیهای غیرضروری نخواهید
عملیاتهای موجود
send
ارسال ایمیل جدید از طریق Gmail
getAll
دریافت لیست ایمیلها از صندوق پستی
get
خواندن یک ایمیل خاص
delete
حذف ایمیل یا انتقال به سطل زباله
addLabels
افزودن لیبل به ایمیل
removeLabels
حذف لیبل از ایمیل
markAsRead
ایمیل را به عنوان خوانده شده علامت بزن
markAsUnread
ایمیل را به عنوان خوانده نشده علامت بزن
کاربردهای متداول
1. ارسال ایمیل اعلان خودکار
زمانی که کاربر ثبتنام میکند، ایمیل خوشآمدگویی ارسال شود:
Webhook (ثبتنام) → Gmail (Send)
- To: {{$json.email}}
- Subject: "خوش آمدید!"
- Message: قالب HTML خوشآمدگویی2. پردازش ایمیلهای دریافتی
خواندن ایمیلهای جدید و ذخیره در دیتابیس:
Schedule (هر 15 دقیقه) → Gmail (Get All)
- Label: INBOX
- Search: is:unread
→ IF (بررسی موضوع) → MySQL (ذخیره)
→ Gmail (Mark as Read)3. ارسال خبرنامه
ارسال ایمیل به لیست کاربران:
MySQL (لیست کاربران) → Gmail (Send)
- To: {{$json.email}}
- Subject: "خبرنامه ماهانه"
- Message: محتوای خبرنامه
- Attachments: فایل PDF4. یادآوری خودکار
ارسال یادآوری قبضها:
Schedule (هر روز 9 صبح) → MySQL (قبوض نزدیک به سررسید)
→ Gmail (Send)
- Subject: "یادآوری پرداخت قبض"
- Message: جزئیات قبض5. پشتیبانی از طریق ایمیل
خواندن ایمیلهای پشتیبانی و ایجاد تیکت:
Gmail Trigger (ایمیل جدید در support@)
→ Set (استخراج اطلاعات)
→ MySQL (ایجاد تیکت)
→ Gmail (Send Reply - تایید دریافت)6. ارسال فاکتور
ارسال فاکتور بعد از خرید:
Order Complete Webhook → PDF Generator (فاکتور)
→ Gmail (Send)
- To: {{$json.customer_email}}
- Subject: "فاکتور خرید شماره {{$json.order_id}}"
- Attachments: PDF فاکتور7. اعلان خطاها
اگر خطا رخ داد، به ادمین ایمیل بفرست:
Error Trigger → Gmail (Send)
- To: admin@example.com
- Subject: "⚠️ خطا در Workflow"
- Message: جزئیات خطا8. فیلتر و دستهبندی ایمیلها
خواندن ایمیلهای فاکتور و ذخیره:
Gmail Trigger (ایمیل جدید)
→ IF (subject شامل "invoice")
→ True: پردازش فاکتور + افزودن لیبل "Invoices"
→ False: نادیده بگیر9. پاسخ خودکار
پاسخ اتوماتیک به ایمیلهای خاص:
Gmail (Get All - unread)
→ IF (موضوع = "درخواست اطلاعات")
→ Gmail (Send)
- Reply-To: ایمیل اصلی
- Subject: Re: {{$json.subject}}
- Message: پاسخ از پیش تعریف شده
→ Gmail (Mark as Read)10. بکآپ ایمیلهای مهم
ذخیره ایمیلهای مهم در Google Drive:
Gmail (Get All)
- Search: label:important
→ Loop
→ Google Drive (Upload)
- File: محتوای ایمیل (HTML)
- Folder: Backupنکات حرفهای
💡 نکات حرفهای:
- 1Gmail Search Operators (جستجوی پیشرفته):
from:user@example.com // فرستنده
to:me // ایمیلهای به من
subject:invoice // موضوع شامل invoice
is:unread // خوانده نشده
is:starred // ستارهدار
has:attachment // دارای پیوست
filename:pdf // نوع فایل پیوست
after:2024/01/01 // بعد از تاریخ
before:2024/12/31 // قبل از تاریخ
larger:5M // بزرگتر از 5 مگابایت
label:important // دارای لیبل
in:inbox // در صندوق ورودی- 1ترکیب Operators:
from:boss@company.com AND subject:urgent
is:unread AND has:attachment
(from:user1 OR from:user2) AND subject:invoice- 1ارسال HTML زیبا:
<html dir="rtl">
<body style="font-family: Tahoma;">
<h1 style="color: #0066cc;">عنوان</h1>
<p>متن پیام</p>
<a href="https://example.com" style="background: #0066cc; color: white; padding: 10px;">دکمه</a>
</body>
</html>- 1ارسال به چند نفر: از کاما جدا کنید:
To: user1@example.com, user2@example.com, user3@example.com- 1افزودن پیوست: از Binary Data استفاده کنید:
Attachments: {{$binary.file}}- 1محدودیتهای Gmail:
- رایگان: 500 ایمیل/روز
- Google Workspace: 2000 ایمیل/روز
- حجم پیوست: 25 مگابایت
- تعداد گیرنده در یک ایمیل: 2000 نفر (100 توصیه میشود)
- 1استفاده از Templates: قالب ایمیل را در متغیر ذخیره کنید:
const template = `سلام {{name}}، سفارش شما آماده است.`- 1Unsubscribe Link: لینک لغو اشتراک اضافه کنید:
<a href="https://yoursite.com/unsubscribe?email={{email}}">لغو اشتراک</a>- 1Tracking: برای ردیابی باز شدن ایمیل:
<img src="https://yoursite.com/track/{{emailId}}.png" width="1" height="1">- 1Labels مفید:
- INBOX: صندوق ورودی
- SENT: ارسال شده
- DRAFT: پیشنویس
- SPAM: اسپم
- TRASH: زبالهدان
- STARRED: ستارهدار
- IMPORTANT: مهم
- UNREAD: خوانده نشده
- 1Rate Limiting: اگر ایمیل زیاد میفرستید، بین هر ایمیل 1-2 ثانیه صبر کنید:
Loop → Gmail (Send) → Wait (2 seconds)- 1Personalization: از Expression برای شخصیسازی:
سلام {{$json.firstName}}،
سفارش شما به شماره {{$json.orderId}} آماده است.- 1Error Handling: همیشه Error Trigger داشته باشید:
Gmail → Error Trigger → Telegram (اعلان خطا به ادمین)- 1Testing: قبل از ارسال انبوه، با ایمیل خودتان تست کنید.
- 1Backup: ایمیلهای مهم را بکآپ بگیرید (به Google Drive یا Database).
رفع مشکلات
خطاهای رایج
1. خطای "Insufficient Permission"
علت: Scopes کافی در OAuth ندارید
راهحل
- به Google Cloud Console بروید
- OAuth Consent Screen > Scopes
- Scopeهای لازم را اضافه کنید:
gmail.sendبرای ارسالgmail.readonlyبرای خواندنgmail.modifyبرای ویرایش- در n8n، credential را حذف و دوباره بسازید
2. خطای "Daily sending quota exceeded"
علت: محدودیت روزانه Gmail
راهحل
- Gmail رایگان: 500 ایمیل/روز
- Google Workspace: 2000 ایمیل/روز
- صبر کنید تا فردا یا سرویس ایمیل دیگری استفاده کنید
- از چند اکانت Gmail استفاده کنید
3. ایمیل در Spam میرود
علت: محتوا یا تنظیمات ایمیل
راهحل
- SPF, DKIM, DMARC تنظیم کنید
- از HTML تمیز استفاده کنید
- لینکهای مشکوک نگذارید
- از دامنه معتبر ارسال کنید
- تعداد گیرندگان را محدود کنید
4. خطای "Attachment too large"
علت: حجم پیوست بیش از 25 مگابایت
راهحل
- فایل را فشرده کنید
- یا به Google Drive آپلود کنید و لینک ارسال کنید
- از سرویس فایلشیرینگ استفاده کنید
5. Gmail Trigger کار نمیکند
علت: n8n به طور منظم چک نمیکند
راهحل
- از Schedule Trigger + Gmail Get All استفاده کنید
- یا Gmail API Push Notifications تنظیم کنید (پیشرفته)
6. خطای "Invalid credentials"
علت: Token منقضی شده
راهحل
- Credential را Reconnect کنید
- در n8n: Credentials > Gmail > Test Connection
7. Search کار نمیکند
علت: Gmail Query Syntax اشتباه است
راهحل
- از Gmail search operators استفاده کنید:
from:user@example.comsubject:invoiceis:unreadhas:attachmentafter:2024/01/01- چند شرط:
from:user AND subject:test
