فرمان Mail در Linux
برای ارسال کردن mail در خط فرمان شما می توانید از فرمان Mail استفاده کنید. با استفاده از این فرمان هم می توانید به یک میل سرور خارج از شبکه خود Mail ارسال کنید و در بخش بعدی می توانید در بین کاربران سیستمی mail ارسال کنید. از این روش برای ارسال کردن گزارشات سیستمی هم استفاده می شود.
در بسیاری از برنامه ها کاربردی در سیستم عاملهای متن باز و shell script های موجود و حتی برنامه crontab برای ارسال کردن گزارش به کاربر root از برنامه mail داخلی استفاده می شود. در این بخش با روش استفاده دوم از mail در سیستم عامل لینوکس آشنا می شوید.
نصب کردن mail:
به صورت پیش فرض فرمان mail در همه سیستم عاملهای متن باز وجود دارد، در صورتی که این فرمان وجود نداشته باشد باید انرا نصب کنید در ادامه با روش نصب در سیستم عاملهای مبتنی بر Redhat و debian آشنا می شوید.
در سیستم عاملهای مبتنی بر سیستم عاملهای خانواده Redhat از فرمان yum برای نصب کردن برنامه های کاربردی استفاد می شود،برنامه mail بخشی از برنامه mailx است و برای نصب کردن آن در این دسته از سیستم عاملها از فرمان زیر استفاده کنید:
# yum install mailx
در سیستم عاملهای مبتنی بر خانواده Debian از apt-get برای نصب کردن برنامه ها کاربردی استفاده می شود، برنامه mail در بسته نصبی mailutils قرار دارد و از فرمان زیر برای نصب کردن mail استفاده کنید:
$ sudo apt-get install mailutils
ارسال mail با خط فرمان:
به دو روش می توانید در خط فرمان mail ارسال کنید در بخش اولی به صورت معولی و سوال و جوابی در بخش دوم در یک خط که این بخش برای نوشتن در Shell Scripting بسیار مفید است.
# [abedini@localhost ~]$ mail root@localhost
Subject: Mabedinii
Hi Mabedini.
www.abediniElearn.com
.
EOT
[abedini@localhost ~]$
در روش اجرایی فرمان بالا ابتدا باید بعد از فرمان mail نام کاربر محلی که قصد دارید میل را به آن ارسال کنید را وارد کنید، در بخش بعدی شما باید در مقابل بخش Subject: موضوع mail خود را وارد کنید و بعد Enter کنید. حال شما باید در بخش بعدی متن میل خود را تایت کنید، در این بخش شما باید به این نکته برای پایان دادن به متن در خطی خالی نقطه را وارد کرده و Enter کنید. بعد از وارد کردن . همانطوری که مشاهده می کنید مقدار EOT نمایش داده می شود و شما به خط فرمان باز می گردید.
روش دوم ارسال کردن در یک خط است با استفاده از سویچ های موجود در فرمان mail، در زیر یک مثال از این بخش را مشاهده می کنید:
#echo “My Mail” | mail -s “Hi” root@localhost
امکان اضافه کردن attach و ارسال آن از طریق خط فرمان وجود دارد برای این کار کافیست که از سویچ A و مسیر فایل استفاده کنید به صورت زیر:
echo “My Mail” | mail -s “Hi” root@localhost -A backup.zip#
گاهی اوقات متن تایپ شده زیاد است و برای ارسال کردن متون طولانی در قالب یک فرمان از روش زیر استفاده کنید:
#mail -s “Subject here” -t root@localhost -A backup.zip < message.txt
در این فرمان شما می توانید متن خود را در قالب یک فایل متنی نوشته و با استفاده از > در پایان فرمان به صورت یکجا متن مورد نظر را ارسال کنید.
نمایش mail های دریافت شده کاربر:
بعد از ارسال کردن mail با استفاده از روشهای ذکر شده حال شما می توانید از همان فرمان mail هم برای مشاهده کرده mail های دریافتی یک کاربر استفاده کنید و برای این کار کافیست که در سطح دسترسی کاربر مورد نظر فرمان mail را اجرا کنید تا به صورت زیر وارد بخش mailbox کاربر مورد نظر شوید:
[abedini@localhost ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/spool/mail/abedini”: 2 messages 2 unread
>U 1 root Thu Jul 25 21:54 19/620 “Ho”
U 2 root Thu Jul 25 21:57 19/633 “Hi”
&
همانطوری که مشاهده می کنید این کاربر دو میل دارد و هر دو در حالت خوانده نشدن است و علامت U در کنای < نمایش این مطلب است که میلها خوانده نشده است، اگر Enter کنید به صورت پیش فرض میلی که علامت < در کنار آن قرار گرفته است باز می شود، در ادامه شما عددی را مشاهده می کنید تعداد میلها را نمایش میدهد و با استفاده از این عدد می توانید در بخش & و بعد Enter کردن وارد یک میل با شماره خاص شوید.
در ادامه شما نام کاربری که میل را ارسال کرده و زمان دقیق ارسال و موضوع نمایش داده شده است.
[abedini@localhost ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/spool/mail/abedini”: 2 messages 2 unread
>U 1 root Thu Jul 25 21:54 19/620 “Ho”
U 2 root Thu Jul 25 21:57 19/633 “Hi”
& 2
Message 2:
From root@localhost.localdomain Thu Jul 25 21:57:59 2019
Return-Path: <root@localhost.localdomain>
X-Original-To: abedini@localhost
Delivered-To: abedini@localhost.localdomain
Date: Thu, 25 Jul 2019 21:57:59 +0430
To: abedini@localhost.localdomain
Subject: Hi
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@localhost.localdomain (root)
Status: RO
ASSASSS
همانطوری که مشاهده می کنید در مثال بالا میل شماره 2 باز شده است و علاوه بر اطلاعات بیشتر متن تایپ شده در میل نمایش داده می شود، برای خارج شده از این بخش شما می توانید از q در بخش & استفاده کرده و بعد Enter کنید تا از برنامه خارج شوید.
برای ارسال پاسخ به میل باز شده کافیست کلید r را در بخش & تایپ و بعد Enter کنید تا محیط تایپ برای شما باز شود و بعد از اتمام تایپ کافیست که . را وارد کنید.
مطالعه بیشتر سویچ های فرمان mail:
https://linux.die.net/man/1/mail