سرور SMTP چیست؟

رامونا امیری ۰۸ خرداد ۱۳۹۹ ۰ دیدگاه

در مقاله سرور SMTP چیست؟ به بحث و بررسی تعدادی از پرسش‌های توسعه دهندگان در مورد سرور SMTP می‌پردازیم. ما این مقاله را با برخی از رایج‌ترین سؤالات و پرسش‌ها مانند اینکه یک سرور SMTP چیست؟ تفاوت بین SMTP و API چیست؟ و اینکه کدام سرویس مناسب شما است؟ گردآوری کرده ایم. همچنین در ادامه نیز به تنظیمات سرور SMTP برای ارسال ایمیل و به تعداد نامحدود می‌پردازیم.

سرور SMTP چیست؟

از هر کسی که بپرسید “SMTP به چه معنی است؟” اولین چیزی که به ذهن آنها خطور می‌کند “پروتکل ساده ارسال ایمیل” است. حال می‌خواهیم فراتر از تعریف کلمه به کلمه، مفاهیم آن را دنبال کرده و متوجه شویم که SMTP و SMTP Server دقیقاً چیست؟ و چرا به آن احتیاج داریم؟ اگر با عملکرد ایمیل آشنایی داشته باشید، می‌توانید از طریق درگاه سرور SMTP ایمیل ارسال و دریافت کنید. تمام زبان‌های برنامه نویسی و مهارت‌های مختلفی که شما به‌عنوان یک توسعه دهنده فرا گرفته اید فقط روی کامپیوتر یا سرور لوکال اجرا می‌شود.

حال اگر بخواهید به شبکه خارجی متصل شده و یک email/ SMS/ notification ارسال کنید، به پروتکلی تحت عنوان SMTP نیاز دارید. اکثر سیستم‌های ایمیل از SMTP برای ارسال ایمیل از پورت یک سرور SMTP به سرور دیگری استفاده می‌کنند.

تنظیمات سرور SMTP

سرور SMTP که Simple Mail Transfer Protocol نیز نامیده می‌شود، در واقع برنامه‌ای است که ایمیل‌ها را ارسال، دریافت و مبادله می‌کند. نکته مهم این است که توجه داشته باشیم که SMTP Server در واقع یک سرور نیست، بلکه یک برنامه است که امکان ارسال و دریافت ایمیل را فراهم می‌کند.

تنظیمات سرور SMTP

هر سرور SMTP آدرس خاص خود را دارد که معمولاً به‌صورت smtp.serveraddress.com است. معمولاً ابهاماتی بین مفاهیم SMTP و IMAP/POP وجود دارد. اما تفاوت بسیار ظریفی بین این دو است. SMTP یک push protocol است و برای ارسال ایمیل استفاده می‌شود.

در حالی که (POP(post office protocol یا (IMAP(internet message access protocol برای دریافت آن ایمیل‌ها در سمت گیرنده استفاده می‌شود.

مدل سرور SMTP

مدل سرور SMTP بر دو نوع است:

  • روش End-to-end
  • روش ذخیره و ارسال یا Store-and-forward

از مدل End-to-end برای برقراری ارتباط بین سازمان‌های مختلف استفاده می‌شود، در حالی که از روش store and forward در درون یک سازمان استفاده می‌شود. یک client SMTP که می‌خواهد ایمیلی را ارسال کند به‌منظور ارسال این ایمیل به مقصد، به‌طور مستقیم با SMTP میزبان در مقصد ارتباط برقرار می‌کند. Server SMTP ایمیل را تا زمانی که با موفقیت در SMTP گیرنده کپی شود، در خود نگه می‌دارد.

با client SMTP یک session آغاز می‌شود  که آن را client-SMTP می‌نامیم. Server SMTP در واقع به درخواست session پاسخ می‌دهد که آن را نیز receiver-SMTP می‌نامیم. در حقیقت client- SMTP باید session را آغاز کند و receiver-SMTP باید به درخواست پاسخ دهد

مدل سرور SMTP

چرا وقتی می توان از Gmail/Yahoo/Outlook استفاده کرد، از SMTP استفاده کنیم؟

درست است که بیشتر ما برای ارسال ایمیل‌های شخصی و کاری روزانه خود از سایت‌های ایمیل مانند Gmail ،Yahoo Outlook و غیره استفاده می‌کنیم. اما نکته‌ای که باید دقت کنیم این است که همه این پلتفرم‌ها برای ارسال پیام‌ها در مقیاس ۱: ۱(یک به یک) ساخته شده‌ اند، نه برای مقیاس‌های بالاتر.

منظور از مقیاس در سرور SMTP چیست؟

اگر در حال اداره یک کسب‌و‌کار آنلاین هستید، باید هزاران ایمیل را به‌صورت خودکار برای فعالیت کاربران خود ایجاد و ارسال کنید مانند ثبت نام در سایت، تغییر رمز عبور، حذف سبد خرید و غیره. آنچه شما نیاز دارید سیستمی است که می‌تواند به‌منظور مدیریت و انجام این امور، به‌صورت موثر و کارآمد مقیاس‌پذیر باشد و در این سناریو ارسال ایمیل با این حجم و ویژگی‌ها از عهده صرفاً یک سایت خارج است.

نحوه ارسال ایمیل با سرور SMTP

چرا از SMTP به جای API استفاده کنیم؟

به‌عنوان فرستنده ایمیل، شما ممکن است در انتخاب بین SMTP یا API مرتکب اشتباه شوید، حال کدام یک را باید انتخاب کرد؟ با وجود همه گیری بالاتر SMTP در بین این دو سرویس، مشکلاتی نیز در مورد SMTP وجود دارد. با استفاده از API ها می‌توان از مشکلات رایج در تبادل ایمیل در SMTP جلوگیری کرد که به‌طور کلی سرعت تحویل بهتری دارند و در عرض چند ثانیه نیز قابل اجرا هستند. در نهایت، این انتخاب به نیازهای ایمیل شما (اتوماسیون و معیار‌های ردیابی) و همچنین قابلیت‌های پلتفرم نیز بستگی دارد.

راهنمای کامل ارسال ایمیل از سرور SMTP

نحوه ارسال ایمیل با سرور SMTP

شما یا می‌توانید سرور SMTP خود را راه‌اندازی و تنظیم کنید، یا اینکه به برنامه ایمیل کلاینت خود با استفاده از SMTP Server Providers متصل شوید و دسترسی‌های دریافت مستقیم ایمیل را به آن اختصاص دهید. برخی از شما ممکن است فکر کنید که راه‌اندازی Server SMTP شخصی ممکن است موجب صرفه جویی در هزینه شود اما در واقع اینطور نیست. 

سرور SMTP

زیرا هر کدام از سرورهای relay  SMTP در مورد تعداد ایمیل‌هایی که می‌توانند در ISP های مختلف ارائه دهند، محدودیت دارند. حتی اگر بتوانید کدی بنویسید که به شما در ارسال میلیون‌ها ایمیل کمک کند، ممکن است که ISP ها به دلیل حجم زیاد ایمیل‌های ارسال شده توسط یک فرستنده با فرض spam بودن آنها، بلافاصله شروع به مسدود کردن این ایمیل‌ها ‌کنند.

از طرف دیگر اگر به‌دنبال یک ارائه دهنده خدمات ایمیل (ESP) خوب هستید، می‌توانید به کمک آن میلیاردها ایمیل ارسال کنید و از مزایای ارسال و دریافت ایمیل استفاده کرده و یک اعتبار بالا برای IP خود بسازید. انتخاب ESP مناسب بسیار مهم است. به هنگام ارسال ایمیل با تعداد بالا ارزیابی عملکرد ایمیل‌های ارسالی نیز مفید است، زیرا این امر به ایجاد اعتبار بالا برای دامنه فرستنده  sender domainشما نیز کمک می‌کند.

از این رو به‌جای مدیریت زیرساخت توسط خودتان، می‌توانید یک ESP خوب را انتخاب کرده و به خدمت بگیرید. این امر می‌تواند در گزارش‌گیری کلیه فعالیت‌های کاربران مانند باز کردن ایمیل، کلیک‌ها، امتیازات و تشویق‌ها، شکایات مربوط به spam و هر فعالیت مهم دیگر به شما کمک کند. اگر تمایل به ارسال ایمیل از یک سرور  SMTP با زبان php را دارید، این مقاله برای شما مناسب خواهد بود. 

راهنمای کامل ارسال ایمیل از سرور SMTP

ارسال ایمیل با استفاده از SMTP بسیار آسان است. تقریباً تمامی زبان‌های برنامه نویسی برای ایجاد ارتباط با Server SMTP یک تابع داخلی دارند:

سرور SMTP

در زیر پارامترهایی که برای برقراری اتصال SMTP به آنها نیاز دارید آورده شده است:

سرور SMTP

با استفاده از این چهار پارامتر قادر خواهید بود به هر سرور SMTP relay متصل شوید که البته برای ارسال ایمیل الکترونیکی به آدرس فرستنده، آدرس گیرنده، موضوع و متن ایمیل نیاز دارید. ایجاد و ارسال یک ایمیل کار مشکلی نیست، زیرا اکثر زبان‌های برنامه نویسی توابع ساخت و ارسال ایمیل را دارند. فرایند فوق بسیار شبیه به ایجاد اتصال به یک بانک اطلاعاتی و سپس جستجو دیتا در SQL است.

چالش هایی که توسعه دهندگان هنگام ادغام SMTP با آن مواجه هستند

در صورتی که از یک سرور هاست اشتراکی استفاده می‌کنید، پورت‌های ۲۵ و ۵۸۷ مسدود هستند. این مسدودی عمدی و توسط ارائه دهنده خدمات هاستینگ انجام شده است. این مورد حتی در مورد برخی از سرورهای اختصاصی نیز صادق است. در صورت مسدود بودن این پورت‌ها سعی کنید با استفاده از پورت ۲۵۲۵ متصل شوید. اگر این پورت نیز مسدود باشد، تنها راه حل این است که با ارائه دهنده هاست خود تماس بگیرید تا مسدودی این پورت‌ها را رفع کند.

سرور SMTP

بسیاری از ارائه دهندگان میزبانی این پورت‌ها را به‌منظور کنترل و حفاظت از شبکه خود در برابر ارسال spam مسدود می‌کنند. از پورت‌های ۲۵ یا ۵۸۷ برای اتصال plain/TLS و از پورت ۴۶۵ برای اتصال SSL استفاده کنید. به اکثر کاربرانی که با مشکل محدودیت در میزان ارسال ایمیل توسط بعضی از ارائه دهندگان خدمات هاستینگ  مواجه شده‌ اند، پیشنهاد می‌کنیم که از پورت ۵۸۷ استفاده کنند.

رفع مشکلات SMTP

امیدواریم توانسته باشیم شما را با مفاهیم SMTP و نحوه عملکرد آن آشنا کرده باشیم. اگرچه این کار آسان به نظر می‌رسد، اما چالش‌هایی نیز وجود دارد که هنگام استفاده از توابع پیش فرض SMTP با آنها روبرو خواهید شد.

در صورتی که حجم ایمیل‌های شما بسیار پایین باشد (به‌عنوان مثال چند هزار ایمیل)، تنظیمات پیش فرض SMTP مناسب کار شما است اما اگر به‌دنبال ارسال میلیون‌ها ایمیل هستید، ممکن است تنظیمات پیش فرض SMTP متناسب با نیاز‌های شما و مقیاس‌پذیر نباشد. دلیل این امر نیز این است که از طریق یک اتصال SMTP، شما فقط می‌توانید یک ایمیل ارسال کنید. از این رو برای ارسال یک میلیون ایمیل باید یک میلیون اتصال SMTP برقرار کنید. این امر هم مستلزم پهنای باند بالا است و همچنین این کار بسیار وقت گیر است.

سرور SMTP

با استفاده از چند تکنیک می‌توانید از ایجاد چندین اتصال SMTP خلاص شوید:

 

۱- اتصال پایدار SMTP

همانطور که از نام Persistent SMTP پیدا است، تنها کاری که باید انجام دهید آن است که یک اتصال SMTP برقرار کنید و با استفاده از عملکرد SMTP پایدار می‌توانید همان اتصال را تا رسیدن زمان timeout ،فعال نگه دارید. در این حالت می‌توانید چندین ایمیل را فقط از یک اتصال SMTP ارسال کنید. این مفهوم همچنین تحت عنوان SMTP Keep Alive نیز شناخته می‌شود.

یک نمونه استفاده از اتصال پایدار SMTP در PHP:

سرور SMTP
۲- اجرای چندین فرآیند همزمان در یک دستگاه

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

یک سرور را در نظر بگیرید که بر روی آن ۵ آدرس IP تنظیم شده است. حال پنج فرآیند ارسال ایمیل را با استفاده از کد اتصال SMTP پایدار برای هر یک از آدرس‌های مجرا بنویسید. در نتیجه شما ۵ اتصال SMTP پایدار و آماده برای ارسال ایمیل‌ها خواهید داشت.

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

هنگامی که انواع ایمیل‌های transactional/ digest/notification را به‌صورت انتخابی برای کاربران ارسال می‌کنید، بهینه سازی فوق می‌تواند به شما کمک کند.

سرور SMTP با قابلیت ارسال ایمیل با حجم بالا

ارسال یک ایمیل نسبتاً ساده است. اما برای سازمان‌های بزرگ‌تر که میلیون‌ها ایمیل بازاریابی یا تراکنش مالی ارسال می‌کنند، روند SMTP می‌تواند پیچیده باشد. بهترین راه برای شروع کار با ارسال ایمیل SMTP می‌تواند تنظیم میل سرور لوکال است .

می‌توانید از طریق اپلیکشن خود تمامی ایمیل‌های خود را به Postfix لوکال ارسال کنید و تنظیمات SMTP از هر ESP را به‌عنوان یک میزبان هوشمند در سرور خود اعمال کنید. در اینجا Postfix فقط به‌عنوان یک سیستم صف بندی استفاده شده است. حتی اگر اتصال اینترنت بین سرورها و ESP شما قطع شود، postfix به‌صورت هوشمند عمل می‌کند و تا زمان برقراری مجدد اینترنت، ایمیل‌ها را مرتب کرده و آنها را ارسال می‌کند. بنابراین نگران هوشمند سازی برنامه ارسال کننده خود برای اداره این صف ها نباشید.

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.