ارسال ایمیل از سرور SMTP
دستور mail در ترمینال لینوکس از SMTP محلی (mta) روی پورت ۲۵ برای ارسال ایمیل استفاده می کند، اما گاهی نیاز داریم تا از سرور های ایمیل خارجی مانند Gmail استفاده کرده و با اکانت خود در ترمینال ایمیلی ارسال کنیم. برخلاف چیزی که به نظر میرسد این کار بسیار ساده (شاید حتی سادهتر از تنظیم تاندربرد روی ماشین محلی) می باشد. در این پست دو ابزار mailx و swaks را به شما معرفی می کنیم.
۱– دستور mailx
دستور mailx از در پکیج های زیادی در دسترس است، پکیج هایی مانند mailutils و heirloom-mailx از جمله ی این پکیج ها هستند. Heirloom-mailx را میتوانید با دستور زیر نصب کنید:
1 |
$ sudo apt-get install heirloom-mailx |
در مثال زیر ایمیلی با استفاده از یک سرور SMTP خارجی و تنها با یکی دستور فرستاده ایم.
1 2 3 4 |
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 |
همین کار را در دوباره به صورت قدم به قدم اجرا کرده ایم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ 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 روی اوبونتو یا دبیان از دستور زیر اسفاده کنید:
1 |
$ sudo apt-get install swaks |
برای ارسال ایمیل از الگوی زیر استفاده کنید:
1 2 |
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 مربوط به آن مراجعه کنید.