Πρόσφατα χρειάστηκε να στήσω μια MTA (Message Transfer Agent) υπηρεσία στον υπολογιστή μου ώστε να μπορώ να στέλνω Emails όχι μόνο τοπικά αλλά και έξω από αυτόν. Ψάχνοντας βρήκα κάμποσους οδηγούς στο διαδίκτυο, οι περισσότεροι εξ αυτών όμως ήταν παρωχημένοι. Όλο και κάποιο λάθος προέκυπτε στο Configuration που απέτρεπε τη σωστή λειτουργία.
Εν τέλει μετά από διάφορες δοκιμές βρήκα τις ρυθμίσεις που έπρεπε να κάνω για να δουλέψει όπως πρέπει.
Παρακάτω θα δούμε πως μπορούμε να ρυθμίσουμε το Exim σε ένα σύστημα Debian ώστε να στέλνουμε μηνύματα από το σύστημα (πχ μέσω τερματικού) σε έναν εξωτερικό λογαριασμό Email. Σε αυτό το παράδειγμα θα χρησιμοποιήσουμε τον ίσως δημοφιλέστερο Email Provider, το Gmail της Google.
Όσο δύσκολο και περίπλοκο ήταν παλαιότερα για κάποιον να επιτύχει κάτι τέτοιο, τόσο εύκολο και απλό έχει γίνει πλέον. Ακολουθήστε τα βήματα ένα προς ένα και στο τέλος θα πρέπει να είστε σε θέση να στείλετε Email από το σύστημα σε έναν εξωτερικό λογαριασμό και όχι μόνον στο root@localhost.
Ο ίδιος οδηγός μπορεί να εφαρμοστεί και σε Ubuntu.
Εγκατάσταση απαραίτητων πακέτων
sudo apt-get install exim4-base exim4-config
Ρυθμίσεις
sudo dpkg-reconfigure exim4-config
Ακολουθούν σε εικόνες οι ρυθμίσεις που πρέπει να κάνουμε.
Όνομα Χρήστη και Κωδικός
Ανοίγουμε το αρχείο:
sudo vim /etc/exim4/passwd.client
και προσθέτουμε τις παρακάτω γραμμές:
gmail-smtp.l.google.com:myemail@gmail.com:password *.google.com:myemail@gmail.com:password smtp.gmail.com:myemail@gmail.com:password
Αντικαθιστούμε τα myemail@gmail.com και password με τα πραγματικά username και password του gmail μας.
Στο τέλος τρέχουμε:
sudo update-exim4.conf sudo systemctl restart exim4
Και αυτό ήταν ! Τόσο απλό και τόσο εύκολο.
Οι ρυθμίσεις που κάναμε έχουν αποθηκευτεί στο
/etc/exim4/update-exim4.conf.conf
Συγκεκριμένα για το Gmail
Θα πρέπει να λάβουμε υπόψη μας δυο πράγματα.
1) Σε περίπτωση που δεν έχουμε ενεργοποιήσει το 2 Factor Authentication πρέπει να εφαρμόσουμε μια ειδική ρύθμιση στον Gmail λογαριασμό μας για να επιτραπεί η είσοδος (login) από το σύστημά μας (πχ. το Debian ή το Ubuntu) στο Gmail. Αυτό θα το διαπιστώσουμε εάν στείλουμε ένα Test Email (θα δούμε παρακάτω πως), τότε η Google θα μας στείλει ένα Email για Block Login Attempt. Εκεί υπάρχει το Link που μπορούμε να ακολουθήσουμε για να ενεργοποιήσουμε το «Allow Access to less secure Apps»
2) Στη περίπτωση που έχουμε ενεργοποιήσει το 2 Factor Authentication, και αυτό είναι κάτι που προτείνω ανεπιφύλακτα, πρέπει να δημιουργήσουμε έναν νέο App Password για την εφαρμογή. Αυτό τον κωδικό θα γράψουμε στο παραπάνω αρχείο (passwd.client) και είμαστε έτοιμοι.
Test Email
echo 'Test Message from Debian System.' | mail -s 'Test Message' youremail@example.com
Αντικαταστήστε το youremail@example.com με ένα πραγματικό σας Email και δείτε εάν λάβατε το μήνυμα.
Προεπιλεγμένη διεύθυνση αποστολής Email
Αν θέλουμε το Exim να στέλνει σε συγκεκριμένη διεύθυνση Email τα μηνύματα, μπορούμε να το καθορίσουμε στο αρχείο /etc/email-addresses
Χρήσεις
Εκτός από την προφανή χρήση να στείλουμε κάποιο Email από το τερματικό μας, χρήσιμο για όσους/ες χρησιμοποιούν Server χωρίς γραφικό περιβάλλον, μπορούμε να ρυθμίσουμε άλλες εφαρμογές όπως το «Apt Listchanges» ή το «Unattended Upgrades» να μας στέλνουν μηνύματα.
Μπορούμε ακόμη να ρυθμίσουμε και ένα Cron Job για όποια εργασία εμείς θελήσουμε. Αφού ο MTA λειτουργεί, μια if και ένα mail -s .....
όπως στο Test Mail που είδαμε παραπάνω, είναι αρκετά.
Debugging
- Για μηνύματα λάθους και άλλα Warnings δείτε στο αρχείο
/var/log/exim4/mainlog
- Σε περίπτωση που δεν λειτουργεί σωστά ο mail (ή mailx), σας επιστρέφει μηνύματα λάθους για malformed email address, δοκιμάστε τον mutt.
sudo apt-get install mutt
Και το Test Mail γίνεται
echo 'Test Message from Debian System.' | mutt -s 'Test Message' youremail@example.com
Until next time …
Thanks for reading!
Πάρα πολύ ωραίο άρθρο και σημαντικό!
Και εγώ το έχω χρειαστεί συγκεκριμένη λειτουργία!
Πως και χρησιμοποιείς το Exim και όχι το Postfix ή το sendmail ;
Μπορείς να στείλεις e-mail και με ότι διεύθυνση επιθυμείς;
Ευχαριστούμε πάρα πολύ για τις σωστές οδηγίες ρύθμισής και γενικά για τον συγκεκριμένο οδηγό!
Postfix και sendmail συνήθως χρησιμοποιούνται local. Όταν θέλεις όμως να βγεις έξω, το exim4 είναι το πιο εύκολο στη ρύθμιση και τη χρήση γενικότερα. Το χρησιμοποιώ στον server που έχω για σημαντικές ειδοποιήσεις και λειτουργεί χωρίς πρόβλημα. Με τον mutt λειτουργεί ακόμη καλύτερα, επισυναπτόμενα κλπ.