আমি একটি লিনাক্স শেল স্ক্রিপ্ট থেকে একটি ইমেল প্রেরণ করতে চাই। এটি করার জন্য স্ট্যান্ডার্ড কমান্ডটি কী এবং আমার কি কোনও বিশেষ সার্ভারের নাম সেট আপ করতে হবে?
আমি একটি লিনাক্স শেল স্ক্রিপ্ট থেকে একটি ইমেল প্রেরণ করতে চাই। এটি করার জন্য স্ট্যান্ডার্ড কমান্ডটি কী এবং আমার কি কোনও বিশেষ সার্ভারের নাম সেট আপ করতে হবে?
উত্তর:
যদি সার্ভারটি ভালভাবে কনফিগার করা থাকে, যেমন এটির একটি আপ এবং চলমান এমটিএ রয়েছে, আপনি কেবল মেল কমান্ডটি ব্যবহার করতে পারেন।
উদাহরণস্বরূপ, কোনও ফাইলের সামগ্রী পাঠাতে, আপনি এটি করতে পারেন:
$ cat /path/to/file | mail -s "your subject" your@email.com
man mail
আরো বিস্তারিত জানার জন্য.
sudo apt-get install mailutils
এবং ইন্টারনেট সাইট নির্বাচন করুন : মেল প্রেরণ এবং সরাসরি এসএমটিপি ব্যবহার করে প্রাপ্ত হয়। ।
আপনি ব্যাশ একটি পরিষ্কার এবং সহজ পদ্ধতি চান, এবং আপনি ব্যবহার করতে না চান তাহলে cat
, echo
ইত্যাদি সহজ উপায় হতে হবে:
mail -s "subject here" email@address.com <<< "message"
<<<
স্ট্যান্ডার্ড ইনপুট পুনর্নির্দেশের জন্য ব্যবহৃত হয়। এটি দীর্ঘদিন ধরে বাশের একটি অংশ ছিল।
cat << END
...END | mail -s "subject" test@example.com
এক্সিম এবং এসএসএমটিপি উভয়ই চলমান থাকলে আপনি সমস্যার মধ্যে পড়তে পারেন। তাই আপনি যদি শুধুমাত্র একটি সহজ MTA এর চালাতে চান, শুধুমাত্র একটি সহজ SMTP ক্লায়েন্ট insistance জন্য ইমেল বিজ্ঞপ্তি পাঠাতে আছে, আপনি শেষ পর্যন্ত প্রাক ইনস্টল MTA এর মত দূর করবে | এক্সিম বা পোস্টসাফিক্স প্রথম এবং পুনরায় ইনস্টল করুন ssmtp।
তারপরে এটি কেবল সোজা এগিয়ে রয়েছে, কেবলমাত্র 2 টি ফাইল (রেভালিয়াসেস এবং এসএসএমটিপিএকএনএফ) কনফিগার করে - এসএসএমটিপি ডক দেখুন - এবং আপনার ব্যাশ বা বোর্ন স্ক্রিপ্টে ব্যবহারটি হ'ল:
#!/bin/sh
SUBJECT=$1
RECEIVER=$2
TEXT=$3
SERVER_NAME=$HOSTNAME
SENDER=$(whoami)
USER="noreply"
[[ -z $1 ]] && SUBJECT="Notification from $SENDER on server $SERVER_NAME"
[[ -z $2 ]] && RECEIVER="another_configured_email_address"
[[ -z $3 ]] && TEXT="no text content"
MAIL_TXT="Subject: $SUBJECT\nFrom: $SENDER\nTo: $RECEIVER\n\n$TEXT"
echo -e $MAIL_TXT | sendmail -t
exit $?
স্পষ্টতই আপনার ফায়ারওয়াল আউটপুটটি এসএমটিপি পোর্ট (25) এ খুলতে ভুলবেন না।
ব্যাশ স্ক্রিপ্টের জন্য অন্য একটি বিকল্প:
mailbody="Testmail via bash script"
echo "From: info@myserver.test" > /tmp/mailtest
echo "To: john@mywebsite.test" >> /tmp/mailtest
echo "Subject: Mailtest subject" >> /tmp/mailtest
echo "" >> /tmp/mailtest
echo $mailbody >> /tmp/mailtest
cat /tmp/mailtest | /usr/sbin/sendmail -t
/tmp/mailtest
এই স্ক্রিপ্টটি ব্যবহৃত হওয়ার সময় ফাইলটি ওভাররাইট করা হয়।সাধারণত, আপনি mail
স্থানীয় এমটিএ ব্যবহার করে আপনার বার্তাটি প্রেরণের জন্য কমান্ডটি ব্যবহার করতে চান (এটি হয় এটি এসএমটিপি ব্যবহার করে গন্তব্যে পৌঁছে দেবে বা এটি আরও কিছু শক্তিশালী এসএমটিপি সার্ভারে প্রেরণ করবে, উদাহরণস্বরূপ, আপনার আইএসপি তে)। আপনার যদি স্থানীয় এমটিএ না থাকে (যদিও এটি ইউনিক্স-এর মতো সিস্টেমের জন্য বাদ দেওয়া কিছুটা অস্বাভাবিক), আপনি হয় এসএমএসটিপি এর মতো কিছু সংখ্যক এমটিএ ব্যবহার করতে পারেন ।
ssmtp
কনফিগার করা বেশ সহজ। মূলত, আপনাকে কেবল আপনার সরবরাহকারীর এসএমটিপি সার্ভারটি নির্দিষ্ট করতে হবে:
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and you mailhub is so named.
mailhub=mail
আরেকটি বিকল্প হাজার হাজার স্ক্রিপ্ট এক যে শুধু সরাসরি SMTP সার্ভারের সাথে সংযোগ ব্যবহার এবং যেমন সেখানে একটি বার্তা পোস্ট করতে, চেষ্টা হল SMTP-প্রমাণীকরণ-ইমেল-স্ক্রিপ্ট , SMTP-CLI , SendEmail , ইত্যাদি
আপনি কিছু এসএমটিপি সার্ভার ব্যবহার করতে চান তা স্বীকার করে, আপনি এটি করতে পারেন:
export SUBJECT=some_subject
export smtp=somehost:someport
export EMAIL=someaccount@somedomain
echo "some message" | mailx -s "$SUBJECT" "$EMAIL"
পরিবর্তন করুন somehost
, someport
এবং someaccount@somedomain
আপনি ব্যবহার করবেন এমন প্রকৃত মানগুলিতে। এই উদাহরণে কোনও এনক্রিপশন এবং কোনও প্রমাণীকরণ কার্যকর করা হয় না।
mailx
ইনস্টল না হলে কী করবেন ?
mail
কমান্ড যে (যিনি অনুমিত হবে ;-) আছে। আপনার শেলটি খুলুন এবং উপলভ্য সমস্ত বিকল্পের কমান্ডের জন্য man mail
ম্যানুয়াল পৃষ্ঠা পেতে প্রবেশ mail
করুন।
এমনকি আপনার এমটিএ দরকার নেই। এসএমটিপি প্রোটোকলটি আপনার এসএমটিপি সার্ভারে সরাসরি এটি লিখতে যথেষ্ট সহজ। এমনকি যদি আপনি ওপেনএসএসএল প্যাকেজ ইনস্টল করা থাকে তবে আপনি এসএসএল / টিএলএসের মাধ্যমেও যোগাযোগ করতে পারেন। এই পোস্টটি দেখুন: https://33hops.com/send-email-from-bash-shell.html
উপরেরটি কীভাবে পাঠ্য / এইচটিএমএল ইমেলগুলি পাঠাতে হবে যা বাক্সের বাইরে কাজ করবে। আপনি যদি সংযুক্তিগুলি যুক্ত করতে চান তবে জিনিসটি কিছুটা জটিল হয়ে উঠতে পারে, আপনাকে বাইনারি ফাইলগুলি এনকোড করতে হবে এবং এগুলি সীমানার মধ্যে এম্বেড করতে হবে। তদন্ত শুরু করার জন্য এটি একটি ভাল জায়গা: http://forums.codeguru.com/showthread.php?418377- বিক্রয়- ইমেল-w-attachments- using-SMTP
লিনাক্সে, মেল ইউটিলিটি "-a" বিকল্পের সাথে সংযুক্তি প্রেরণের জন্য ব্যবহার করা যেতে পারে। বিকল্পটি পড়তে ম্যান পৃষ্ঠাগুলি যান। যেমন নীচের কোডটি একটি সংযুক্তি প্রেরণ করবে:
মেল-গুলি "এটি সাবজেক্ট" -a সংযুক্তি.টেক্সট নাম@domain.com <<< "হাই বাডি, দয়া করে ব্যর্থতার প্রতিবেদনগুলি সন্ধান করুন।"
পোস্টফিক্স ব্যবহার করা হচ্ছে
1: সফ্টওয়্যার ইনস্টল করুন
দেবিয়ান এবং উবুন্টু:
apt-get update && apt-get install postfix mailutils
openSUSE:
zypper update && zypper install postfix mailx cyrus-sasl
ফেডোরা:
dnf update && dnf install postfix mailx
সেন্টওএস:
yum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain
আর্চ লিনাক্স:
pacman -Sy postfix mailutils
FreeBSD 'র:
portsnap fetch extract update
cd /usr/ports/mail/postfix
make config
কনফিগারেশনে এসএএসএল সমর্থন নির্বাচন করুন
make install clean
pkg install mailx
২. জিমেইল কনফিগার করুন
জন্য / etc / পোস্টসাফিক্স। পাসওয়ার্ড ফাইল তৈরি বা সম্পাদনা করুন:
vim /etc/postfix/sasl_passwd
আমি ভিআইএম ব্যবহার করছি আপনি ন্যানো, বিড়াল ..... এর মতো যে কোনও ফাইল এডিটর ব্যবহার করতে পারেন
> উবুন্টু, ফেডোরা, সেন্টসস, দেবিয়ান, ওপেনসুএস, আর্চ লিনাক্স:
এটি যোগ করুন
যেখানে ব্যবহারকারীরা আপনার মেইল নাম এবং পাসওয়ার্ডের সাথে প্রতিস্থাপন করে তা হ'ল জিমেইল পাসওয়ার্ড
[smtp.gmail.com]:587 user@gmail.com:password
ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন এবং এটি কেবল রুট দ্বারা অ্যাক্সেসযোগ্য করুন: এটির সংবেদনশীল বিষয়বস্তু যা আপনার পাসওয়ার্ড ধারণ করে bec
chmod 600 /usr/local/etc/postfix/sasl_passwd
> FreeBSD 'র:
ডিরেক্টরি / usr / স্থানীয় / ইত্যাদি / পোস্টফিক্স।
vim /usr/local/etc/postfix/sasl_passwd
লাইন যুক্ত করুন:
[smtp.gmail.com]:587 user@gmail.com:password
সংরক্ষণ এবং এটিকে কেবল মূল দ্বারা অ্যাক্সেসযোগ্য করে তুলুন:
chmod 600 /usr/local/etc/postfix/sasl_passwd
৩. পোস্টফিক্স কনফিগারেশন
কনফিগারেশন ফাইল
6 পরামিতি আমাদের অবশ্যই পোস্টফিক্সে সেট করতে হবে
উবুন্টু, আর্চ লিনাক্স, দেবিয়ান:
সম্পাদন করা
vim /etc/postfix/main.cf
নিম্নলিখিত মানগুলি সংশোধন করুন:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_sasl_security_options যা কনফিগারেশনে খালি সেট করা হবে তা নিশ্চিত করার জন্য যে কোনও জিমেইল-বেমানান সুরক্ষা বিকল্প ব্যবহার করা হয়নি।
সংরক্ষণ করেন এবং বন্ধ করেন
যেমন পছন্দ
openSUSE:
vim /etc/postfix/main.cf
পরিবর্তন
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
এটি ফাইলের কনফিগারেশন প্রয়োজন master.cf
সংশোধন:
vim /etc/postfix/master.cf
এই লাইনটি uncommenting দ্বারা (# অপসারণ)
#tlsmgr unix - - n 1000? 1 tlsmg
সংরক্ষণ করেন এবং বন্ধ করেন
ফেডোরা, সেন্টোস:
vim /etc/postfix/main.cf
পরিবর্তন
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
FreeBSD 'র:
vim /usr/local/etc/postfix/main.cf
সংশোধন:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/mail/certs/cacert.pem
এটি সংরক্ষণ এবং বন্ধ করুন
প্রক্রিয়া পাসওয়ার্ড ফাইল:
উবুন্টু, ফেডোরা, সেন্টোস, ওপেনসুএস, আর্চ লিনাক্স, দেবিয়ান:
postmap /etc/postfix/sasl_passwd
বিনামূল্যে বিএসডি জন্য
postmap /usr/local/etc/postfix/sasl_passwd
৪.১) পুনঃসূচনা পোস্টফিক্স
উবুন্টু, ফেডোরা, সেন্টোস, ওপেনসুএস, আর্চ লিনাক্স, দেবিয়ান:
systemctl restart postfix.service
ফ্রিবিএসডি এর জন্য :
service postfix onestart
nano /etc/rc.conf
যোগ
postfix_enable=YES
সংরক্ষণ করুন তারপর চালানো
service postfix start
5. নীচের লিঙ্কটির সহায়তা ব্যবহার করে Gmail এ "কম সুরক্ষিত অ্যাপস" সক্ষম করুন
https://support.google.com/accounts/answer/6010255
6. একটি পরীক্ষার ইমেল প্রেরণ করুন
mail -s "subject" recever@domain.com
টিপুন
আপনার ইচ্ছা হিসাবে মেল লাশ যোগ এন্টার টিপুন তারপর প্রেস Ctrl + D সঠিক পরিসমাপ্তি জন্য
এটা কাজ করছে না যদি সমস্ত ধাপ পরীক্ষা আবার এবং পরীক্ষা U "সক্ষম করলে কম সুরক্ষিত অ্যাপলিকেশান" আপনার Gmail এ
তারপরে আপনি যদি কিছু পরিবর্তন করেন তবে পোস্টফিক্স পুনরায় চালু করুন
শেল স্ক্রিপ্টের জন্য .sh ফাইল তৈরি করুন এবং আপনার প্রয়োজনীয়তা হিসাবে 6 টি পদক্ষেপ কমান্ড যুক্ত করুন
যেমন একটি নমুনার জন্য উদাহরণস্বরূপ
#!/bin/bash
REALVALUE=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=80
if [ "$REALVALUE" -gt "$THRESHOLD" ] ; then
mail -s 'Disk Space Alert' mailid@domainname.com << EOF
Your root partition remaining free space is critically low. Used: $REALVALUE%
EOF
fi
স্ক্রিপ্টটি ইমেল প্রেরণ করে যখন ডিস্কের ব্যবহার থ্রিলহোল্ড ভেরিয়ালবে (এখানে ৮০%) নির্দিষ্ট করা শতাংশের উপরে উঠে যায়।
আপনি 'ইমেল' বা 'ইমেলেক্স' কমান্ড ব্যবহার করতে পারেন।
(1) im vim /etc/mail.rc # বা # vim /etc/nail.rc
set from = xxx@xxx.com #
set smtp = smtp.exmail.gmail.com #gmail's smtp server
set smtp-auth-user = xxx@xxx.com #sender's email address
set smtp-auth-password = xxxxxxx #get from gmail, not your email account passwd
set smtp-auth=login
(2) cho প্রতিধ্বনি "অনুগ্রহ করে অনস অন विषयগুলি অপসারণ করতে দয়া করে মনে রাখবেন!" | মেল-গুলি "বর্জ্য বিষয়গুলি" -a a.txt বিকাশকারী @ xxx.com # ব্যবহারকারীদের 'বিকাশকারী@xxxx.com.com' এ পাঠান