SMTP Relay
ارسال ایمیل از طریق SMTP Relay سرویس Mail.Land با استفاده از پروتکلهای استاندارد SMTP
MailLand یک SMTP Relay برای برنامههایی که ایمیل را از طریق SMTP ارسال میکنند فراهم کرده است. از همان اعتبارنامههای API برای احراز هویت و ارسال از طریق پورتهای استاندارد SMTP استفاده کنید.
تنظیمات اتصال
| تنظیم | مقدار |
|---|---|
| Host | smtp.mail.land |
| پورت 587 | ارسال با STARTTLS (اجباری) |
| احراز هویت | الزامی |
| نام کاربری | هر مقداری (مثلاً ایمیل شما یا apikey) |
| رمز عبور | کلید API سرویس MailLand شما |
| حداکثر حجم پیام | ۱۵ مگابایت (۱۵٬۷۲۸٬۶۴۰ بایت)؛ پیامهای بزرگتر با خطای 552 رد میشوند |
در محیط تولید، فقط پورت 587 (STARTTLS) برای relay منتشر شده است. پورت 465 (TLS ضمنی) منتشر نشده و پورت 25 به دروازهٔ ورودی جداگانه هدایت میشود، نه به relay.
احراز هویت
احراز هویت SMTP از کلید API سرویس MailLand شما به عنوان رمز عبور استفاده میکند. نام کاربری میتواند هر مقداری باشد: MailLand آن را نادیده میگیرد و صرفا بر اساس کلید API احراز هویت انجام میدهد.
اعتبارنامه شما باید کانال Smtp فعال داشته باشد. اگر اعتبارنامه شما فقط Api فعال دارد، احراز هویت SMTP رد خواهد شد.
Username: apikey
Password: ml_pet_Ab3Kx9mN2pQ7rT4wL8yD...ایمیل و رمز عبور حساب شما برای SMTP پذیرفته نمیشود. در پنل یک اعتبارنامهٔ SMTP بسازید و آن را بهعنوان رمز عبور به کار ببرید.
نمونههای پیکربندی
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'smtp.mail.land',
port: 587,
secure: false, // STARTTLS
auth: {
user: 'apikey',
pass: 'ml_pet_Ab3Kx9mN2pQ7rT4wL8yD...',
},
});
await transporter.sendMail({
from: '"Your App" <[email protected]>',
to: '[email protected]',
subject: 'Hello from MailLand',
html: '<h1>Hello!</h1><p>Sent via SMTP relay.</p>',
text: 'Hello! Sent via SMTP relay.',
});اعمال قوانین اعتبارنامه
همان قوانین اعتبارنامه REST API برای SMTP نیز اعمال میشود:
- جریان: اعتبارنامههای تراکنشی حداکثر ۵ گیرنده در هر پیام دارند؛ اعتبارنامههای بازاریابی تا ۱٬۰۰۰ گیرنده در هر پیام مجازند
- محدوده دامنه: اگر اعتبارنامه به دامنههای خاصی محدود شده باشد، دامنه فرستنده باید در لیست مجاز باشد
- لیست سفید IP: اگر اعتبارنامه محدودیت IP داشته باشد، IP متصل شونده باید مجاز باشد
- محدودیت نرخ: محدودیتهای اعتبارنامه به ازای هر دقیقه (در صورت تنظیم)، هر ساعت (پیشفرض ۱٬۰۰۰) و هر روز (پیشفرض ۱۰٬۰۰۰) پیش از محدودیتهای پلن فضای کاری اعمال میشوند. عبور از هرکدام، خطای موقتی
421برمیگرداند. محدودیت به ازای هر ثانیه امروز اعمال نمیشود - حالت: اعتبارنامههای Sandbox ایمیل را میپذیرند و ثبت میکنند اما هرگز تحویل نمیدهند، صرفنظر از
sandboxBehavior
محدودیت اتصال IP
مستقل از محدودیتهای نرخ اعتبارنامه، اتصالات SMTP بر اساس آدرس IP محدود میشوند:
| محدودیت | مقدار پیشفرض |
|---|---|
| اتصال در دقیقه | 30 |
| اتصال در ساعت | 300 |
این محدودیتها قبل از احراز هویت اعمال میشوند. در صورت تجاوز، اتصال با پیامی مبنی بر تلاش مجدد بعدا رد میشود.
کدهای پاسخ SMTP
| کد | معنی |
|---|---|
250 | پیام برای تحویل پذیرفته شد |
421 | موقتی: محدودیت نرخ اعتبارنامه یا فضای کاری، سهمیه یا تنظیم سرعت گرمسازی. بعداً دوباره تلاش کنید؛ این یک رد دائمی نیست |
451 | موقتی: ارسال بهخاطر افزایش ناگهانی حجم، توقف بازاریابی یا توقف تحویلپذیری متوقف شده است. پیام را در صف نگه دارید و دوباره تلاش کنید؛ پس از رفع توقف پذیرفته میشود |
550 | دائمی: دامنه تأیید نشده، فرستنده/گیرنده مسدود شده، تأیید لازم است، یا محدودیت گیرندگان بازاریابی (۱٬۰۰۰ در هر پیام) رد شده، یا همهٔ گیرندگان در فهرست سرکوب هستند (5.7.1) |
552 | دائمی: پیام از حداکثر حجم (۱۵ مگابایت) بیشتر است، مجموع پیوستها پس از رمزگشایی از ۱۰ مگابایت بیشتر است، یا پیام نهایی از بودجهٔ حجم پیام پلتفرم فراتر میرود (5.3.4) |
مدیریت خطا
هنگامی که پیامی رد میشود، پاسخ SMTP شامل دلیلی قابلفهم است. یک رد موقتی (قابل تلاش مجدد) اینگونه است:
421 Try again later: rate limit exceeded
421 Try again later: monthly quota exceeded
421 Try again later: credential rate limit exceeded
451 4.7.0 Marketing emails are paused for this accountو یک رد دائمی اینگونه است:
550 5.7.1 Domain is not verified. Add DNS records at https://app.mail.landبر خلاف REST API (که 202 Accepted برمیگرداند و به صورت غیرهمزمان پردازش میکند)، SMTP میتواند پیامها را به صورت همزمان در سطح اتصال برای نقضهای دامنه، محدودیت نرخ و سهمیه رد کند.
مقایسه SMTP و REST API
| ویژگی | REST API | SMTP Relay |
|---|---|---|
| پروتکل | HTTPS | SMTP |
| احراز هویت | هدر X-API-Key | SMTP AUTH (کلید به عنوان رمز عبور) |
| پاسخ | غیرهمزمان (202 Accepted) | همزمان (250 OK یا خطا) |
| پیوستها | Base64 در JSON | MIME استاندارد |
| قالبها | فیلد templateId | پشتیبانی نمیشود (از MIME استفاده کنید) |
| ارسال زمانبندی شده | فیلد scheduledAt | پشتیبانی نمیشود |
| ردیابی | فیلد tracking | تنظیم شده بر اساس دامنه |
| متغیرهای هر گیرنده | to[].variables | پشتیبانی نمیشود |
| ارسال دستهای | endpoint send-batch | پشتیبانی نمیشود |
مراحل بعدی
- REST API: ارسال ایمیل از طریق REST API
- کلیدهای API: پیکربندی کانال SMTP روی اعتبارنامهها
- تنظیمات دامنه: پیکربندی رکوردهای DNS برای دامنه ارسال