همه ما انقدر خوش شانس نیستیم که از یک mail client گرافیکی با تمامی امکانات مانند thunderbird و یا kmail و از این نظیر برنامه‌ها برای ارسال ایمیل استفاده کنیم. گروهی از افراد بدشانس به نام system administrator وجود دارند (مثل من :دی) که باید از command line و یا اسکریپت برای ارسال ایمیل استفاده کنند. اگر شما هم مثل من جز این دسته از افراد بد شانس هستید توصیه می‌کنم ادامه مطلب را بخوانید.

در اینجا سعی خواهم کرد به چگونگی ارسال ایمیل از طریق command line و از طریق پروتکل telnet بپردازیم.

برای شروع ابتدا باید از run بودن mail server بر روی سرور مورد نظر مطمئن شویم

سپس به سرور مورد نظر بر روی پورت 25 telnet خواهیم زد .

در اینجا میل سرور ما دارای آدرس فرضی roshak.org می‌باشد.

در مرحله اول برای ارسال میل به آدرس مورد نظر بر روی پورت 25 که Simple Mail Transfer Protocol) SMTP) می‌باشد telnet می‌زنیم:

telnet roshak.org 25
Trying 192.168.100.1...
Connected to roshak.org (192.168.100.1).
Escape character is '^]'.
220 roshak.org ESMTP Sendmail 8.13.8/8.13.8; Sat, 23 Feb 2013 00:35:05 -0800


خوب تا اینجا ما با میل سرور مورد نظر ارتباط برقرار کرده‌ایم و نرم افزار مربوطه که در اینجا sendmail می‌باشد به ما جواب داده است.
در مرحله بعدی ما نیاز داریم که domain خود را معرفی کرده و بگوییم از چه domain ای می خواهیم میل ارسال کنیم.


برای انجام این کار از کامند helo استفاده می کنیم . البته دقت شود که بعضی از میل سرورها به این دستور نیازی ندارند
در اینجا domain مورد نظر ما نیز roshak.org است

helo roshak.org
250 roshak.org Hello roshak.org [192.168.100.1], pleased to meet you

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

در مرحله بعدی ما نیاز داریم که بگوییم که میل از طریق چه کسی قرار است ارسال شود و یا به عبارتی sender را مشخص می‌کنیم

برای این کار از دستور MAIL FROM: و یا mail from: استفاده می‌کنیم

MAIL FROM: info@roshak.org
250 2.1.0 info@roshak.org... Sender ok

خوب طبیعتا در مرحله بعدی باید گیرنده ایمیل را مشخص کنیم که با دستور RCPT TO: و یا rcpt to: این کار را انجام می‌دهیم

RCPT TO: google@gmail.com
250 2.1.5 google@gmail.com... Recipient ok

توجه: اگر در این مرحله گیرنده وجود نداشته باشد به شما ارور خواهد داد.

بعد از مشخص کردن دامین ، فرستنده و گیرنده باید Subject و متن نامه را مشخص کنیم برای این کار از دستور DATA و یا data استفاده میکنیم. به طور مثال میل ما دارای subject و یا موضوع happy new year می‌باشد و در متن آن نیز عبارت

Norooz Pirooz Baad را می نویسیم. توجه کنید که باید انتهای میل را با یک . (dot) مشخص کنیم.

DATA
354 Enter mail, end with "." on a line by itself
subject:Happy New Year
Noroozetan Pirooz Bad
.

بعد از اتمام متن و گذاشتن . در انتهای نامه و زدن ENETR به ما پیغامی به صورت زیر داده می شود که نشان از درستی ارسال میل دارد:

250 2.0.0 r1N8Z5ke027980 Message accepted for delivery

بعد از ارسال میل با دستور QUIT و یا quit کارمان پایان می یابد .

telnet 192.168.100.1 25
Trying 192.168.100.1 ....
Connected to roshak.org (192.168.100.1).
Escape character is '^]'.
220 roshak.org ESMTP Sendmail 8.13.8/8.13.8; Sat, 23 Feb 2013 01:23:46 -080
helo roshak.org
250 roshak.org Hello roshak.org [192.168.100.1], pleased to meet you
MAIL FROM: info@roshak.org
250 2.1.0 info@roshak.org... Sender ok
RCPT TO: google@gmail.com
250 2.1.5 google@gmail.com... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
subject:HAPPY NEW YEAR
Norooz Pirooz Bad
.
250 2.0.0 r1N9NkDk004318 Message accepted for delivery
QUIT

221 2.0.0 roshak.org closing connection
Connection closed by foreign host.