e2a: ایمیل امن برای ایجنتهای هوش مصنوعی
خلاصهٔ کاملتر
e2a یه گیتوی ایمیلی احراز هویتشدهست که برای ایجنتهای هوش مصنوعی ساخته شده. مشکلی که حل میکنه اینه که وقتی یه ایجنت ایمیل دریافت میکنه، نمیدونه فرستنده واقعاً همونیه که ادعا میکنه — e2a این مشکل رو با بررسی SPF/DKIM روی ایمیلهای ورودی و امضای HMAC روی هدرهای تحویل حل میکنه.
دو حالت تحویل وجود داره: حالت cloud که ایمیل رو مستقیماً با HTTPS POST به یه webhook URL میفرسته (نیاز به URL عمومی داره)، و حالت local که از WebSocket استفاده میکنه — مناسب ایجنتهایی که پشت فایروال هستن و آدرس عمومی ندارن. ایجنتهای local وقتی آفلاین باشن پیامها ذخیره میشن و همین که وصل شدن، سرور همه رو تحویل میده.
روی هر ایمیل تحویلدادهشده، یه سری هدر امضاشده وجود داره: مثلاً X-E2A-Auth-Verified که نشون میده احراز هویت دامنهای (SPF یا DKIM) موفق بوده، X-E2A-Auth-Sender برای ایمیل فرستنده تأییدشده، و X-E2A-Auth-Signature که یه HMAC-SHA256 روی همه این فیلدهاست. این امضا به message_id و هش SHA-256 بدنه پیام گره خورده، یعنی یه مهاجم نمیتونه یه ادعای auth رو روی پیام دیگهای بازپخش کنه.
SDK پایتون بهصورت پیشفرض دسترسی به فیلدهای ایمیل رو پشت تأیید امضا قفل کرده. اگه بدون تأیید امضا بخوای به email.sender یا email.subject دسترسی پیدا کنی، خطای UnverifiedEmailError میده — این یعنی اشتباهاً به دادههای دستکاریشده اعتماد نمیکنی:
from e2a.v1 import E2AClient
client = E2AClient() # reads E2A_API_KEY
email = client.parse_webhook(request_body) # raises on bad signature
# safe to use email.sender, email.subject, …یه قابلیت جالب دیگه Human in the Loop یا HITL ئه — ایمیلهای خروجی رو میشه در یه صف نگه داشت تا یه ناظر انسانی از طریق داشبورد، ایمیل magic-link، یا CLI تأیید کنه. برای ارسال ایمیل هم دو مسیر داره: ایجنتبهایجنت (SMTP relay داخلی) و ایجنتبهانسان (از طریق سرویسهای SMTP بالادستی مثل SES یا Resend).
برای راهاندازی، نسخه self-host فقط به Docker نیاز داره. با docker compose up -d سه سرویس بالا میان: API روی پورت 8080، SMTP relay روی 2525، و داشبورد Next.js روی 3000. نسخه hosted هم در e2a.dev در دسترسه و دامنه اشتراکی agents.e2a.dev رو بدون نیاز به تنظیم DNS میده.
نکات کلیدی:
- e2a احراز هویت فرستنده (انسان یا ایجنت) رو با SPF/DKIM و امضای HMAC تضمین میکنه
- دو حالت تحویل: webhook برای ایجنتهای cloud، WebSocket برای ایجنتهای local بدون IP عمومی
- SDK پایتون و TypeScript دارد؛ دسترسی به فیلدهای ایمیل بدون تأیید امضا خطا میده
- قابلیت HITL برای نگهداشتن ایمیل خروجی تا تأیید انسانی
- self-host با Docker ممکنه؛ نسخه hosted هم با دامنه آماده موجوده




