سلام ، امروز بعد از کلی مشغله ی کاری تونستم یه پست بزارم ، موضوعی که مد نظرم هست واسه این پست ارسال ایمیل از طریق ترمینال توسط میل سرور گوگل هست . با این کار خیلی ساده میشه جیمیل تون رو مثلا توی cron بزارید یا حتی syslog یا هر alert ای که بخواهید . قبل از هرکاری ، یه گواهینامه امنیتی یا کد ssl روی سیستممون لازم داریم چرا که جیمیل دیتا رو به صورت رمز شده و با الگوریتم به خصوص خودش ارسال میکنه . خوب یه فایل به اسم Equifax_Secure_CA.crt توی پوشه ی /usr/share/ca-certificates/mozilla باید داشته باشید با محتویاتی شبیه به :
-----BEGIN CERTIFICATE----- MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQG EwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1 cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4 MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgx LTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0 eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2R FGiYCh7+2gRvE4RiIcPRfM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO /t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuv K9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAGA1UdHwRp MGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEt MCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjAL BgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw HQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMBAf8w GgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GB AFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y 7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2u FHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE-----
خوب برای گرفتن آخرین گواهینامه ssl از گوگل باید از دستور زیر استفاده کنیم :
root@oslearn-lab# openssl s_client -connect imap.gmail.com:993 -showcerts
همینطور که میبینید ، دو قسمت بهتون نشون میده که شامل
-----BEGIN CERTIFICATE----- کد های ssl -----END CERTIFICATE-----
هرکدوم از این تیکه کد هارو باید توی یه فایل بزارین . ما قسمت اول رو توی یه فایل تحت عنوان gmail.crt قسمت دوم رو هم توی یه فایل به اسم google.crt میذاریم .
قسمت اول از طرف Google Internet Authority هست قسمت دوم هم از طرف Equifax هست . روی اوبونتو و دبیان و mint یه گواهینامه از Equifax توی خود repository ها موجود هست . دستور زیر رو اجرا کنید :
sudo apt-get install ca-certificates
باید مسیر فایلی رو که داخلش گواهینامه رو قرار دادیم توی کانفیگ msmtp که پائین تر توضیح میدم در قسمت tls_trust_file تعریف کنیم.
لازمه که دو تا نرم افزار تحت عنوان های msmtp و mailx رو نصب کنیم ، بسته به سیستمی که دارید استفاده میکنید یکی از دستورات زیر رو اجرا کنید :
sudo apt-get install msmtp heirloom-mailx // Debian sudo yum install msmtp mailx // RPM
کانفیگ msmtp
برای کانفیگ msmtp باید یه فایل .msmtprc توی Home Dir یوزر خودمون بسازیم و محتویات زیر رو داخلش قرار بدیم :
account oslearn auth on host smtp.gmail.com port 587 tls on tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt user [email protected] password 123456 from [email protected] account default: oslearn
برای اینکه msmtp به خوبی کار کنه و مشکلات پرمیژنی نداشته باشه باید دستور زیر رو وارد کنید :
chmod 600 ~/.msmtprc
کانفیگ mailx
مثل مورد قبل یه فایل .mailrc داخل Home Dir یوزر خودتون بسازید . بعد هم محتویات زیر رو داخلش قرار بدین :
set from="[email protected]" #your email id here set sendmail="/usr/bin/msmtp" #location of msmtp's binary executable set message-sendmail-extra-arguments="-a oslearn" #additional arguments to msmtp goes here (optional) (-a indicates account name to be used to send mails)
خوب حالا خیلی ساده میتونید از طریق ترمینال ایمیل ارسال کنید .
نکته : اگه هر یوزر برای خودش یه اکانت جیمیل داره که کانفیگ ها باید توی Home Dir ها باشه اگه نه و کل سرور یا کلاینت یه ایمیل واحد داره توی فولدر /etc میتونین قرارش بدین .
برای ارسال ایمیل هم از طریق mailx
# mailx [email protected] Subject : This is test Happy new year (2015) :D . EOT
برای ارسال از روی یک فایل ( مثلا لاگ فایل یا هرچیزی )
mailx -s "subject line" [email protected] < /path/body.txt
منبع : او اس لرن دات آی آر
نویسنده : محمد ورمزیار
پیروز و سربلند باشید .