مدیریت پیام‌های ورودی

یک پیام ورودی، ایمیلی است که به یک پایگاه دادهٔ Odoo تحویل داده می‌شود. هر کسی می‌تواند به یک نام مستعار ایمیل ایجادشده در پایگاه داده ایمیل ارسال کند یا به یک ایمیلی که قبلاً از پایگاه داده ارسال شده، بر اساس سرتیتر reply-to پاسخ دهد.

نام مستعار ایمیل

alias‌های مختص هر مدل

برخی اپلیکیشن‌ها aliasهای خاص خود را دارند (تیم‌های فروش، تیم‌های میز خدمت، پروژه‌ها و غیره). این aliasها برای کارهای زیر استفاده می‌شوند:

  • ایجاد یک رکورد زمانی که یک ایمیل مستقیماً به alias ارسال می‌شود،

  • دریافت پاسخ‌های یک ایمیلی که در ابتدا از یک رکورد ارسال شده است.

Example

local-part «info» برای alias تیم فروش استفاده می‌شود.

در مثال نمایش‌داده‌شده در بالا، ارسال یک ایمیل به info@company-name.odoo.com یک فرصت جدید یا یک سرنخ جدید ایجاد می‌کند که به‌صورت خودکار به تیم فروش متناظر تخصیص داده می‌شود. اگر یک ایمیل از چتر یک فرصت موجود ارسال شود، reply-to info@company-name.odoo.com خواهد بود. پاسخ، بر اساس سرتیتر message-id، در چتر صحیح ثبت می‌شود.

نام مستعار جامع (Catchall)

اگر یک اپلیکیشن نام مستعاری نداشته باشد، یک نام مستعار عمومی پشتیبان استفاده می‌شود: catchall. یک ایمیل ارسال‌شده از یک چتر، آدرس پاسخی تنظیم‌شده به این نام مستعار catchall دارد. پاسخی که به catchall ارسال می‌شود، به لطف سرتیتر message-id، در چتر صحیح ثبت می‌شود.

به‌صورت پیش‌فرض، local-part catchall استفاده می‌شود. حالت توسعه‌دهنده (debug mode) را فعال کنید و به تنظیمات ↤ فنی ↤ Emails: Alias Domains بروید تا به پیکربندی دسترسی پیدا کنید.

یک ایمیل به catchall همیشه باید یک پاسخ به یک ایمیل قبلی ارسال‌شده از پایگاه داده باشد. اگر یک ایمیل مستقیماً به catchall ارسال شود، فرستنده پیام زیر را دریافت خواهد کرد:

ایمیل bounce از «MAILER-DEAMON» که نحوهٔ تماس با پایگاه داده را توضیح می‌دهد.

توجه

آدرس ایمیل info@company-name.com که در تصویر بالا نمایش داده شده است، آدرس ایمیل تنظیم‌شده روی شرکت است. پس از ورود به حالت توسعه‌دهنده در یک پروفایل شرکت، گزینه‌های پیکربندی اضافی (مانند catchall و bounce) قابل خواندن می‌شوند. می‌توان آن را با کلیک روی لینک داخلی دامنهٔ ایمیل اصلاح کرد. به‌طور کلی توصیه نمی‌شود این گزینه‌ها را اصلاح کنید مگر اینکه نیازهای خاصی این کار را الزامی کند، زیرا تمام پاسخ‌ها به ایمیل‌های پیشین را تحت تأثیر قرار خواهد داد.

Example

یک alias می‌تواند روی یک تیم فروش در اپ CRM پیکربندی شود. هنگامی که یک مشتری به یک ایمیلی که از اپ CRM می‌آید پاسخ می‌دهد، reply-to info@company-name.odoo.com است.

هنگامی که یک ایمیل از اپلیکیشن مخاطبین ارسال می‌شود، آدرس پاسخ catchall@company-name.odoo.com است زیرا روی مدل مخاطب هیچ نام مستعاری وجود ندارد.

توجه

توصیه می‌شود local-part catchall و bounce بدون تغییر باقی بمانند. اگر این مقدار اصلاح شود، ایمیل‌های قبلی ارسال‌شده از پایگاه داده همچنان مقادیر local-part قبلی را خواهند داشت. این می‌تواند منجر شود به پاسخ‌هایی که به‌درستی در پایگاه داده دریافت نمی‌شوند.

بازگشتی (Bounce)

همان‌طور که alias catchall برای ساخت آدرس reply استفاده می‌شود، alias bounce برای ساخت return-path ایمیل استفاده می‌شود. return-path زمانی استفاده می‌شود که ایمیل‌ها نتوانند به گیرنده تحویل داده شوند و یک خطا به فرستنده بازگردانده می‌شود.

به‌صورت پیش‌فرض نام bounce استفاده می‌شود. حالت توسعه‌دهنده (debug mode) را فعال کنید و به تنظیمات ↤ فنی ↤ Emails: Alias Domains بروید تا به پیکربندی دسترسی پیدا کنید.

توجه

در Odoo Online، هنگام استفاده از سرور ایمیل خروجی پیش‌فرض، آدرس return-path مستقل از مقدار تنظیم‌شده به‌عنوان alias bounce به مقدار bounce@company-name.odoo.com اجباری می‌شود.

هنگام بروز خطا، یک اعلان دریافت می‌شود و در یک پاکت قرمز در chatter نمایش داده می‌شود. در برخی موارد، پاکت قرمز می‌تواند فقط شامل یک پیام no error باشد، یعنی خطایی وجود دارد که توسط Odoo قابل مدیریت نبوده است.

یک اعلان نیز در آیکون گفتگو روی نوار ناوبری نمایش داده می‌شود.

یک ایمیل ارسالی به یک مخاطب با مشکلی مواجه شده و خطا روی navbar گزارش می‌شود.

Example

اگر آدرس ایمیل گیرنده نادرست باشد، با کلیک روی پاکت قرمز در chatter یک پیام خطا حاوی دلیل شکست داده می‌شود.

یک ایمیل ارسال‌شده به یک دامنهٔ اشتباه یک bounce تولید می‌کند که به‌صورت یک پاکت قرمز نمایش داده می‌شود.

دریافت ایمیل‌ها با پیکربندی پیش‌فرض Odoo

در Odoo Online و Odoo.sh، نام مستعار ایمیل و آدرس‌های پاسخ و بازگشت از پیش پیکربندی شده‌اند. این آدرس‌ها از دامنهٔ نام مستعاری که به‌صورت خودکار به یک پایگاه دادهٔ استاندارد افزوده می‌شود استفاده می‌کنند.

Example

با فرض اینکه URL پایگاه داده https://mydatabase.odoo.com است، alias domain mydatabase.odoo.com به‌صورت خودکار ایجاد می‌شود. catchall و bounce می‌توانند استفاده شوند و آدرس آن‌ها به‌ترتیب catchall@mydatabase.odoo.com و bounce@mydatabase.odoo.com است.

اگر اپ CRM نصب باشد و یک تیم فروش با alias info ایجاد شود، آدرس info@mydatabase.odoo.com می‌تواند بلافاصله استفاده شود. همین موضوع برای هر alias دیگری که در سایر اپلیکیشن‌ها ایجاد شود صدق می‌کند.

دامنهٔ پایگاه داده برای دریافت ایمیل بدون نیاز به پیکربندی اضافی آماده است.

استفاده از چندین subdomain Odoo

در Odoo Online، تنها subdomain Odoo همان است که هنگام ایجاد پایگاه داده تعریف می‌شود.

در Odoo.sh، می‌توان از چندین subdomain Odoo استفاده کرد. در تنظیمات شاخه، subdomainهای Odoo اضافی می‌توانند اضافه شوند تا زمانی که در شاخهٔ دیگری استفاده نشده باشند. این دامنه‌ها سپس باید به alias domains اضافه شوند تا توسط یک شرکت استفاده شوند.

راه‌اندازی یک subdomain Odoo روی یک شاخه.

استفاده از یک دامنهٔ سفارشی برای پیام‌های ورودی

alias domain باید در general settings انتخاب شود. اگر چندین شرکت دارید، هر کدام باید پیکربندی شوند.

alias domain در general settings.

تمام aliasها از این دامنهٔ سفارشی استفاده خواهند کرد. پاسخ‌ها روی مدل‌هایی که برای آن‌ها alias پیکربندی شده به [alias]@my-custom-domain.com انجام می‌شود. پاسخ‌ها به سایر مدل‌ها از طریق catchall@my-custom-domain.com به catchall ارسال می‌شوند.

schema فنی مسیر ایمیل هنگام استفاده از یک دامنهٔ سفارشی در Odoo.

مهم

اگر ایمیل‌ها با استفاده از سرورهای ایمیل Odoo در حالی که از یک دامنهٔ سفارشی استفاده می‌کنید ارسال می‌شوند، دستورالعمل‌های «Using a custom domain with Odoo’s email server» را دنبال کنید.

از آنجا که این دامنهٔ سفارشی استفاده می‌شود، تمام ایمیل‌های استفاده‌کنندهٔ alias (پاسخ‌ها، bounceها و ارسال‌های مستقیم) به یک آدرس از دامنه ارسال می‌شوند. بنابراین آن‌ها به سرور ایمیل متصل به دامنه تحویل داده می‌شوند (رکورد MX). برای نمایش آن‌ها در chatter یا برای ایجاد رکوردهای جدید، لازم است این ایمیل‌های ورودی را در پایگاه دادهٔ Odoo بازیابی کنید.

روش

مزایا

معایب

بازهدایت‌ها

راه‌اندازی آسان است و ایمیل‌ها مستقیماً به پایگاه داده ارسال می‌شوند.

هر alias یک پایگاه داده باید پیکربندی شود.

سرورهای ایمیل ورودی

اجازه می‌دهد یک کپی از ایمیل را در صندوق پستی خود نگه دارید (با IMAP). اجازه می‌دهد رکوردهایی را در مدل انتخاب‌شده ایجاد کنید.

وابسته به یک CRON است، به این معنی که ایمیل‌ها بلافاصله در پایگاه داده بازیابی نمی‌شوند. هر alias یک پایگاه داده باید پیکربندی شود.

رکورد MX

تنها یک رکورد لازم است ایجاد شود تا تمام aliasها به‌درستی کار کنند.

استفاده از یک subdomain لازم است. نیازمند دانش فنی پیشرفته است.

مهم

برای پایگاه‌های دادهٔ on-premise، روش‌های redirection و رکورد MX نیز نیاز به پیکربندی اسکریپت mail gateway دارند. عبور از این اسکریپت نیازمند دانش فنی و زیرساختی پیشرفته است.

مهم

برای اطلاعات بیشتر دربارهٔ نحوهٔ مدیریت روش‌های شرح‌داده‌شده در ادامه، به مستندات ارائه‌دهندهٔ خود مراجعه کنید.

بازهدایت‌ها

اگر پایگاه داده روی Odoo Online یا Odoo.sh میزبانی می‌شود، استفاده از redirectionها توصیه می‌شود. آن‌ها اجازه می‌دهند پیام‌ها بدون تأخیر در پایگاه داده دریافت شوند.

هشدار

هنگام پیکربندی redirectionهای ایمیل با Microsoft 365 (Exchange Online)، توجه داشته باشید که برخی محدودیت‌های فنی ممکن است بر راه‌اندازی شما تأثیر بگذارند. برخی کاربران گزارش کرده‌اند که Microsoft 365 از redirection واقعی پشتیبانی نمی‌کند و فقط اجازهٔ forwarding می‌دهد، که ممکن است طوری که برای مسیریابی ایمیل Odoo نیاز است رفتار نکند.

برای اطلاعات بیشتر دربارهٔ پیکربندی Microsoft Exchange، از Microsoft Learn بازدید کنید.

هدایت آدرس catchall و bounce به subdomain Odoo پایگاه داده الزامی است. هر alias دیگری که استفاده می‌شود نیز باید هدایت شود.

Example

با یک تیم فروش، بازهدایت‌های زیر لازم است:

  • catchall@company-name.comcatchall@company-name.odoo.com

  • bounce@company-name.combounce@company-name.odoo.com

  • info@company-name.cominfo@company-name.odoo.com

مهم

برخی ارائه‌دهندگان درخواست می‌کنند redirection را با ارسال یک لینک به آدرس ایمیل هدف اعتبارسنجی کنید. این روال برای catchall و bounce یک مشکل است زیرا آن‌ها برای ایجاد رکوردها استفاده نمی‌شوند.

  1. مقدار catchall را در mail alias domain اصلاح کنید. حالت توسعه‌دهنده (debug mode) باید برای دسترسی به این منو فعال شود. برای مثال، می‌توان آن را از catchall به temp-catchall تغییر داد. این به شما اجازه می‌دهد از catchall به‌عنوان local-part یک alias دیگر استفاده کنید.

  2. یک اپ که از alias استفاده می‌کند را باز کنید. برای مثال، CRM برای هر تیم فروش aliasها را دارد. catchall را به‌عنوان local-part alias یک تیم فروش تنظیم کنید.

  3. ایمیل اعتبارسنجی یک رکورد در اپ CRM ایجاد می‌کند. ایمیل ارسال‌شده در chatter قابل مشاهده خواهد بود، که به شما اجازه می‌دهد redirection را اعتبارسنجی کنید.

  4. فراموش نکنید alias تیم فروش و مقدار catchall در mail alias domain را به آنچه پیش از این روال بود بازگردانید.

یک جایگزین برای redirectionها forwarding است. با forwarding، آدرسی که ایمیل را forward می‌کند به‌عنوان فرستنده شناسایی می‌شود، در حالی که با redirectionها، فرستندهٔ اصلی همیشه باقی می‌ماند.

مهم

هنگام استفاده از بازهدایت ایمیل برای مدیریت پیام‌های ورودی، ممکن است پیکربندی اضافی برای اطمینان از رفتار صحیح موردنیاز باشد.

برخی ارائه‌دهندگان ایمیل، مانند Gmail، نیاز دارند آدرس redirection پیش از forward شدن ایمیل‌ها به‌طور صریح تأیید شود، در غیر این صورت redirection ممکن است کار نکند.

علاوه بر این، هنگامی که redirection به‌جای یک سرور ایمیل ورودی استفاده می‌شود، alias ممکن است با دامنهٔ @yourdb.odoo.com ظاهر شود مگر اینکه Local-part based incoming detection روی alias متناظر فعال شود. این تنظیم را می‌توان در تنظیمات ↤ فنی ↤ مستعارها یافت.

سرورهای ایمیل ورودی

همان‌طور که قبلاً ذکر شد، استفاده از redirectionها روش توصیه‌شده برای دریافت ایمیل‌ها در Odoo است. با این حال، می‌توان سرورهای ایمیل ورودی را نیز راه‌اندازی کرد. استفاده از این روش به معنای ایجاد یک سرور ایمیل ورودی برای هر صندوق پستی روی سرور شما، catchall، bounce و هر alias پایگاه داده است، تا تمام ایمیل‌های ورودی fetch شوند.

هشدار

ویژگی Incoming Mail Servers Odoo برای صندوق‌های ورودی اشتراکی (مثلاً sales@yourcompany.com یا support@yourcompany.com) طراحی شده تا پیام‌ها را به خطوط لولهٔ تیم، تیکت‌ها یا اسناد مسیریابی کند.

استفاده از آدرس‌های ایمیل شخصی (مثلاً mitchell.admin@yourcompany.com) به‌عنوان سرورهای ایمیل ورودی توصیه نمی‌شود. انجام این کار می‌تواند منجر به ریسک‌های امنیتی افزایش‌یافته، مسیریابی پیام ناخواسته، مشکلات حریم خصوصی و مشکلات همگام‌سازی پاسخ‌ها به‌درستی شود.

سرورهای ایمیل ورودی با رفتن به تنظیمات ↤ فنی ↤ Emails: Incoming Mail Servers ایجاد می‌شوند.

مهم

ما استفاده از پروتکل IMAP را بر پروتکل POP توصیه می‌کنیم، زیرا IMAP تمام ایمیل‌های خوانده‌نشده را fetch می‌کند، در حالی که POP تمام تاریخچهٔ ایمیل‌ها را fetch می‌کند و سپس آن‌ها را به‌عنوان حذف‌شده در صندوق پستی شما تگ می‌کند.

نکته

همچنین می‌توان یک صندوق پستی را از طریق Gmail with Google OAuth یا Outlook with Microsoft Azure OAuth متصل کرد.

بدون توجه به پروتکل انتخاب‌شده، ایمیل‌ها با استفاده از اقدام برنامه‌ریزی‌شدهٔ Mail: Fetchmail Service fetch می‌شوند.

علاوه بر این، استفاده از یک سرور ایمیل ورودی در Odoo فرصت ایجاد رکوردهای جدید در یک مدل مشخص را می‌دهد. هر سرور ایمیل ورودی می‌تواند رکوردها را در یک مدل متفاوت ایجاد کند.

Example

ایمیل‌های دریافت‌شده در task@company-name.com توسط پایگاه دادهٔ Odoo واکشی می‌شوند. تمام ایمیل‌های واکشی‌شده یک کار پروژهٔ جدید در پایگاه داده ایجاد می‌کنند.

schema فنی مسیر ایمیل هنگام استفاده از یک دامنهٔ سفارشی در Odoo.

رکورد MX

گزینهٔ سوم ایجاد یک رکورد MX در zone DNS شما است که سرور ایمیلی را که ایمیل‌های ارسال‌شده به دامنهٔ شما را مدیریت می‌کند مشخص می‌کند. دانش فنی پیشرفته موردنیاز است.

مهم

این پیکربندی فقط با یک subdomain روی زیرساخت Odoo Online یا Odoo.sh کار می‌کند (مثلاً @mail.mydomain.com)

در زیر برخی مشخصات بسته به نوع میزبانی ارائه می‌شود:

subdomain سفارشی باید به Odoo Portal شما اضافه شود.

حلقه‌های ایمیل بی‌نهایت

در برخی موارد، حلقه‌های ارسال نامهٔ بی‌نهایت می‌توانند ایجاد شوند. Odoo برخی محافظت‌ها در برابر این حلقه‌ها ارائه می‌دهد، با اطمینان از اینکه همان فرستنده نمی‌تواند ایمیل‌های زیادی که رکورد ایجاد می‌کنند به یک alias در یک بازهٔ زمانی خاص ارسال کند.

به‌صورت پیش‌فرض، یک آدرس ایمیل می‌تواند حداکثر ۲۰ ایمیل در ۱۲۰ دقیقه ارسال کند. اگر ایمیل‌های بیشتری ارسال شوند، آن‌ها مسدود می‌شوند و فرستنده پیام زیر را دریافت می‌کند:

ایمیل bounce دریافت‌شده پس از تلاش برای تماس بیش از حد با یک alias.

برای تغییر رفتار پیش‌فرض، حالت توسعه‌دهنده (debug mode) را فعال کنید، سپس به تنظیمات ↤ فنی ↤ Parameters: System Parameters بروید تا دو پارامتر اضافه کنید.

  • برای پارامتر اول، mail.gateway.loop.minutes را به‌عنوان کلید وارد کنید و یک تعداد دقیقه را به‌عنوان مقدار انتخاب کنید (120 رفتار پیش‌فرض است).

  • برای پارامتر دوم، mail.gateway.loop.threshold را به‌عنوان کلید وارد کنید و یک تعداد ایمیل را به‌عنوان مقدار انتخاب کنید (20 رفتار پیش‌فرض است).

پارامتر سیستم «اجازهٔ نام مستعار دامنه»

aliasهای ورودی در پایگاه دادهٔ Odoo برای ایجاد رکوردها با دریافت ایمیل‌های ورودی تنظیم می‌شوند. برای مشاهدهٔ aliasهای تنظیم‌شده در پایگاه دادهٔ Odoo، ابتدا developer mode را فعال کنید. سپس به تنظیمات ↤ فنی ↤ مستعارها بروید.

پارامتر سیستم زیر، mail.catchall.domain.allowed، که با مقادیر دامنهٔ نام مستعار مجاز، جداشده با کاما، تنظیم می‌شود، ایمیل‌های به‌درستی آدرس‌داده‌شده به نام‌های مستعار را فیلتر می‌کند. تنظیم دامنه‌هایی که یک نام مستعار می‌تواند یک تیکت، سرنخ، فرصت و غیره ایجاد کند، نتایج مثبتِ نادرستی را که در آن‌ها فقط پیشوند نام مستعار حاضر است (نه دامنه) حذف می‌کند.

در برخی موارد، در پایگاه دادهٔ Odoo زمانی که یک ایمیل با همان پیشوند alias و یک دامنهٔ متفاوت در آدرس ایمیل ورودی دریافت می‌شود، تطابق‌هایی انجام شده است. این در آدرس‌های ایمیل فرستنده، گیرنده و CC یک ایمیل ورودی صدق می‌کند.

Example

هنگامی که Odoo ایمیل‌ها را با پیشوند نام مستعار commercial در آدرس‌های ایمیل فرستنده، گیرنده یا CC دریافت می‌کند (مثلاً commercial@example.com)، پایگاه داده به‌اشتباه ایمیل را به‌عنوان نام مستعار کامل commercial با یک دامنهٔ متفاوت در نظر می‌گیرد، و بنابراین، یک تیکت/سرنخ/فرصت/غیره ایجاد می‌کند.

برای افزودن پارامتر سیستم mail.catchall.domain.allowed، ابتدا developer mode را فعال کنید. سپس به تنظیمات ↤ فنی ↤ پارامترهای سیستم بروید. روی جدید کلیک کنید. سپس mail.catchall.domain.allowed را در فیلد کلید تایپ کنید.

سپس، برای فیلد مقدار، دامنه‌ها را جداشده با کاما اضافه کنید. به‌صورت دستی (Save) کنید و پارامتر سیستم بلافاصله اثرگذار می‌شود.

پارامتر سیستم mail.catchall.domain.allowed تنظیم‌شده.

تشخیص ورودی مبتنی بر Local-part

هنگام ایجاد یک alias جدید، گزینه‌ای برای فعال‌سازی تشخیص ورودی مبتنی بر بخش محلی وجود دارد. در صورت فعال‌سازی، Odoo فقط نیاز دارد local-part برای مسیریابی یک ایمیل ورودی مطابقت داشته باشد. اگر این ویژگی خاموش باشد، Odoo نیاز دارد کل آدرس ایمیل برای مسیریابی یک ایمیل ورودی مطابقت داشته باشد.