इस ट्यूटोरियल में, आप सीखेंगे कि एक सरल अग्रेषण सर्वर sSMTP कैसे स्थापित किया जाए ।
Mailtrap.io डेवलपर्स के लिए एक नकली ईमेल सर्वर प्रदान करता है। विकास के चरण के दौरान रिपोर्ट या ईमेल को वास्तविक पते पर भेजने के लिए इसका उपयोग करें लेकिन उन्हें Mailtrap.io पर इंटरसेप्ट करें (वे अंतिम प्राप्तकर्ता को कभी भी वितरित नहीं किए जाते हैं) और तुरंत देखें कि आपका HTML ईमेल कैसे प्रस्तुत किया गया है या नया CTO बटन कैसे खड़ा हुआ है।
SSMTP और Mailtrap को एकीकृत करके, आपके Ubuntu Development VPS सामान्य मेलिंग प्रयोजनों के लिए उसी ईमेल भेजने वाले सर्वर का उपयोग कर सकते हैं, जैसे क्रोन जॉब पूर्ण रिपोर्टिंग।
इस तरह, आप अपने आवेदन को वास्तविक ईमेल पते के साथ परीक्षण करने में सक्षम होते हैं और यह महसूस करते हैं कि यह ग्राहक की ओर से कैसे व्यवहार करता है, यह सब आपके व्यक्तिगत या सहकर्मियों के मेल खातों में बाढ़ के बिना होता है।
आवश्यक शर्तें
- उबंटू 16.04 के साथ Vultr VPS स्थापित और अद्यतन।
- Mailtrap.io खाता।
- एक गैर-रूट sudo उपयोगकर्ता ।
- आपकी पसंद का टेक्स्ट एडिटर, हम उपयोग करेंगे
nano
।
- बैकअप या आपके वर्तमान इंस्टॉलेशन का एक स्नैपशॉट।
स्थापना प्रक्रिया
एक नियमित उपयोगकर्ता के रूप में अपने VPS में प्रवेश करें। निम्नलिखित जारी करके अपने आप को प्रशासक बनाएं।
sudo su
फिर अपने पासवर्ड से इसकी पुष्टि करें। परीक्षण प्रयोजनों के लिए मेल क्लाइंट के रूप में म्यूट के साथ सर्वर साइड के लिए sSMTP पैकेज स्थापित करें।
apt install ssmtp mutt
विन्यास
अब आपको इसे अपने mailtrap
खाते के साथ काम करना होगा ।
आपको अपने क्रेडेंशियल्स और सर्वर नामों की आवश्यकता होगी। हमारे मामले में, सर्वर smtp.mailtrap.io
पोर्ट के साथ है 2525
।
दो फाइलें हैं जिनका हम संपादन कर रहे हैं। सबसे पहले, जबकि अभी भी रूट के रूप में लॉग इन किया गया है, कॉन्फ़िगरेशन फ़ाइल को संपादित करें।
nano /etc/ssmtp/ssmtp.conf
डिफ़ॉल्ट रूप से, यह निम्न पाठ जैसा दिखता है।
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=example.com
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
इस बिंदु पर आप अपने स्वयं के मूल्यों से मिलान करने के लिए प्रविष्टियों को संपादित कर सकते हैं या बस अपनी विशिष्ट जानकारी के साथ पूरी सामग्री को बदल सकते हैं। पूंजीकृत प्रविष्टियों में आपका वास्तविक डेटा होता है। USERNAME@EXAMPLE.COM
वह ईमेल है जिसमें से आप ईमेल भेजना चाहते हैं। MAILTRAP_USERNAME
और MAILTRAP_PASSWORD
आपके लिए Mailtrap.io पर जनरेट किया गया है। दोनों लंबे, यादृच्छिक तार हैं। इसे अपने Mailtrap इनबॉक्स में देखें SMTP Settings
।
root=USERNAME@EXAMPLE.COM
mailhub=smtp.mailtrap.io:2525
AuthUser=MAILTRAP_USERNAME
AuthPass=MAILRTRAP_PASSWORD
FromLineOverride=Yes
फ़ाइल सहेजें। नैनो प्रेस के साथ " Ctrl-X
" और " Y
" के साथ पुष्टि करें ।
दूसरी फ़ाइल जिसे संपादित करने की आवश्यकता है वह स्थानीय उपयोगकर्ता खातों को बाहरी ईमेल पते, रिवर्स अलियासिंग मैप करने के लिए है। फाइल ऊपर ले आओ।
nano /etc/ssmtp/revaliases
अपनी प्रविष्टियों को अंत तक जोड़ें ताकि यह इस पाठ जैसा कुछ दिखाई दे।
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:USERNAME@EXAMPLE.COM:smtp.mailtrap.io:2525
username:USERNAME@EXAMPLE.COM:smtp.mailtrap.io:2525
अनिवार्य रूप से, सिस्टम को सर्वर के माध्यम से root
ईमेल उपयोगकर्ता के रूप में स्थानीय खाते से सभी ईमेल भेजने चाहिए । जितने चाहें उतने उपयोगकर्ता दर्ज करें, प्रत्येक अपनी पंक्ति में। यदि आपको केवल संदेश भेजने की आवश्यकता है, तो अन्य पंक्तियों को छोड़ दें। आप बाद में वापस आ सकते हैं और आवश्यकतानुसार उपयोगकर्ताओं को जोड़ सकते हैं।USERNAME@EXAMPLE.COM
mailtrap
root
फ़ाइल सहेजें। नैनो प्रेस के साथ " Ctrl-X
" और " Y
" के साथ पुष्टि करें ।
हो गया। आप अपने आप को एक ईमेल भेजकर इसे कार्रवाई में देखना चाह सकते हैं। ऐसा करने के लिए, अपना संदेश बनाएं और भेजें।
echo "This is the body" | mutt -s "Hello World" SEND_TO_USERNAME@EXAMPLE.COM
अपने Mailtrap खाते में प्रवेश करें और अपने डेमो इनबॉक्स की जाँच करें। मेल वहाँ पहले से ही इंतज़ार किया जाना चाहिए।
निष्कर्ष
अंत में, अपने टर्मिनल सत्र root
को नियमित उपयोगकर्ता पर वापस स्विच करें।
exit
वैकल्पिक रूप से, MAILTO=SEND_TO_USERNAME@EXAMPLE.COM
अपने crontab में जोड़ें । एक त्वरित परीक्षण करने के लिए, आइए, /home
प्रत्येक मिनट में अपने फ़ोल्डर में सबफ़ोल्डर्स की जांच करते हुए , क्रेस्टैब को संपादित करें।
crontab -e
यदि आवश्यक हो तो अपना संपादक चुनें और इन पंक्तियों को अंत में जोड़ें / संपादित करें ताकि यह निम्न पाठ जैसा हो।
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
mailto=SEND_TO_USERNAME@EXAMPLE.COM
* * * * * ls /home
यह ls /home
हर मिनट चलता है और क्योंकि वहाँ एक MAILTO
प्रविष्टि है, उस पते पर प्रतिक्रिया भेजता है। आप यहां कॉन्टैब टेबल के बारे में अधिक जान सकते हैं ।
इसे बाहर निकलने पर बचाएं। हर मिनट में मेलट्रैप में एक ईमेल की अपेक्षा करें।