همه ما انقدر خوش شانس نیستیم که از یک 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 laitec.ir 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: [email protected]
250 2.1.0 [email protected]... Sender ok
خوب طبیعتا در مرحله بعدی باید گیرنده ایمیل را مشخص کنیم که با دستور RCPT TO: و یا rcpt to: این کار را انجام میدهیم
RCPT TO: [email protected]
250 2.1.5 [email protected]... 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 -0800
helo roshak.org
250 roshak.org Hello roshak.org [192.168.100.1], pleased to meet you
MAIL FROM: [email protected]
250 2.1.0 [email protected]... Sender ok
RCPT TO: [email protected]
250 2.1.5 [email protected]... 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.