ارسال ایمیل از سرور SMTP
دستور mail در ترمینال لینوکس از SMTP محلی (mta) روی پورت ۲۵ برای ارسال ایمیل استفاده می کند، اما گاهی نیاز داریم تا از سرور های ایمیل خارجی مانند Gmail استفاده کرده و با اکانت خود در ترمینال ایمیلی ارسال کنیم. برخلاف چیزی که به نظر میرسد این کار بسیار ساده (شاید حتی سادهتر از تنظیم تاندربرد روی ماشین محلی) می باشد. در این پست دو ابزار mailx و swaks را به شما معرفی می کنیم.
۱– دستور mailx
دستور mailx از در پکیج های زیادی در دسترس است، پکیج هایی مانند mailutils و heirloom-mailx از جمله ی این پکیج ها هستند. Heirloom-mailx را میتوانید با دستور زیر نصب کنید:
$ sudo apt-get install heirloom-mailx
در مثال زیر ایمیلی با استفاده از یک سرور SMTP خارجی و تنها با یکی دستور فرستاده ایم.
echo "This is the message body and contains the message" | mailx -v -r "someone@example.com" -s "This is the subject" -S smtp="mail.example.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="someone@example.com" -S smtp-auth-password="abc123" -S ssl-verify=ignore yourfriend@gmail.com
همین کار را در دوباره به صورت قدم به قدم اجرا کرده ایم:
$ echo "This is the message body and contains the message" | mailx -v \ > -r "someone@example.com" \ > -s "This is the subject" \ > -S smtp="mail.example.com:587" \ > -S smtp-use-starttls \ > -S smtp-auth=login \ > -S smtp-auth-user="someone@example.com" \ > -S smtp-auth-password="abc123" \ > -S ssl-verify=ignore \ > yourfriend@gmail.com
مطمئن شوید که از تنظیمات درست استفاده می کنید، مانند شماره پورت، اطلاعات تصدیق هویت و …
خروجی این دستور اطلاعات و جزئیات اتفاقاتی که در پشت صحنه برای برقرای ارتباط smtp میافتد را نشان میدهد که برای رفع مشکل میتواند بسیار مفید باشد.
۲– دستور swake
swake لقب چاقوی ارتشی سوئیسی برای SMTP را به دوش می کشد، این برنامه معمولاً برای تست سرور های SMTP به کار رفته و همچنین از TLS پشتیبانی می کند.
برای نصب swake روی اوبونتو یا دبیان از دستور زیر اسفاده کنید:
$ sudo apt-get install swaks
برای ارسال ایمیل از الگوی زیر استفاده کنید:
echo "This is the message body" | swaks --to someone@gmail.com --from "you@example.com" --server mail.example.com --auth LOGIN --auth-user "you@example.com" --auth-password "abc123" -tl
به نظر میرسد همه چیز به اندازه ی کافی مشخص و مفهوم باشد، آپشن “–server” آدرس سرور خارجی SMTP و “–auth” نوع مکانیزم تصدیق هویت را مشخص می کند. با آپشن “-tls” هم swaks را وادار میکنید تا از STARTTLS استفاده کند.
برای اطلاعات بیشتر میتواند به man page مربوط به آن مراجعه کنید.