Bash script για αποστολή email

Bash Script Send Email



Το ηλεκτρονικό ταχυδρομείο είναι ένα πολύ συνηθισμένο μέσο επικοινωνίας στον σημερινό κόσμο. Οποιοσδήποτε μπορεί εύκολα να επικοινωνήσει ή να μοιραστεί οποιοδήποτε έγγραφο με φίλους, μέλη της οικογένειας και συναδέλφους στέλνοντας το email. Γενικά, οι άνθρωποι χρησιμοποιούν οποιονδήποτε δωρεάν διακομιστή ηλεκτρονικού ταχυδρομείου όπως το Gmail, το Yahoo, το Hotmail κ.λπ. για την αποστολή του email. Μπορείτε όμως να στείλετε email από τη γραμμή εντολών εύκολα στο λειτουργικό σύστημα Linux. Υπάρχουν πολλοί τρόποι αποστολής email στο Linux. Ορισμένοι συνηθισμένοι και εύκολοι τρόποι αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου στο λειτουργικό σύστημα Ubuntu από το τερματικό παρουσιάζονται σε αυτό το σεμινάριο.

Αρχικοποίηση:

Πολλές εντολές Linux είναι διαθέσιμες για αποστολή email από τη γραμμή εντολών ή χρησιμοποιώντας ένα σενάριο bash. Αλλά οποιαδήποτε εντολή αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου δεν θα λειτουργήσει εάν κανένας διακομιστής SMTP δεν έχει ρυθμιστεί σωστά στο σύστημα. Μπορείτε να ρυθμίσετε τον δικό σας διακομιστή SMTP για αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου από τη γραμμή εντολών ή μπορείτε να χρησιμοποιήσετε οποιονδήποτε δωρεάν διακομιστή SMTP οποιουδήποτε γνωστού παρόχου υπηρεσιών email, όπως το Gmail ή το Yahoo. Ο διακομιστής SMTP ενός λογαριασμού Gmail χρησιμοποιείται σε αυτό το σεμινάριο. Για να εκτελέσετε αυτήν την εργασία, πρέπει να επιλέξετε έναν λογαριασμό Gmail και να ενεργοποιήσετε την επιλογή 'Να επιτρέπονται λιγότερο ασφαλείς εφαρμογές' για να στείλετε το μήνυμα ηλεκτρονικού ταχυδρομείου σε αυτόν τον λογαριασμό. Μπορείτε να επισκεφθείτε το ακόλουθο σεμινάριο για να ενεργοποιήσετε αυτήν την επιλογή.







https://linuxhint.com/how-to-send-email-from-php/



Αφού ενεργοποιήσετε αυτήν την επιλογή, πρέπει να ανοίξετε το αρχείο ‘/etc/ssmtp/ssmtp.conf’ με προνόμιο ‘root’ και να προσθέσετε τις ακόλουθες γραμμές στο τέλος του αρχείου. Πρέπει να ορίσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας σε 'AuthUser' και τον κωδικό πρόσβασής σας σε 'AuthPass' για να ολοκληρώσετε τη ρύθμιση.



Χρησιμοποιήστε το STARTTLS= ΝΑΙ
FromLineOverride= ΝΑΙ
ρίζα= διαχειριστής@example.com
mailhub= smtp.gmail.com:587
AuthUser= όνομα χρήστη@gmail.com
AuthPass= κωδικός πρόσβασης

Παράδειγμα-1: Χρήση της εντολής Sendmail

Μία από τις δημοφιλείς εντολές αποστολής email του Linux είναι το `sendmail`. Ο χρήστης μπορεί εύκολα να στείλει email από τη γραμμή εντολών χρησιμοποιώντας αυτήν την εντολή. Εάν το πακέτο Sendmail δεν είναι εγκατεστημένο στο σύστημα, εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε το πακέτο.





$sudoκατάλληλοςεγκαθιστώssmtp

Ας υποθέσουμε ότι το περιεχόμενο του ηλεκτρονικού ταχυδρομείου αποθηκεύεται σε ένα αρχείο με το όνομα «email.txt» με το ακόλουθο περιεχόμενο. Εδώ, το κείμενο μετά το «Θέμα:» θα σταλεί ως θέμα email και το υπόλοιπο μέρος θα σταλεί ως σώμα email.

email.txt



Θέμα: Αποστολή email χρησιμοποιώντας sendmail
Δοκιμή σώματος email

Εκτελέστε την εντολή `sendmail 'με διεύθυνση email παραλήπτη όπως η ακόλουθη εντολή.

$sendmailόνομα χρήστη@gmail.com<email.txt

Παράδειγμα-2: Χρήση της εντολής ‘mail’

Η πιο κοινή εντολή για την αποστολή email στο Linux είναι η εντολή `mail '. Αυτή η εντολή δεν είναι εγκατεστημένη στο Ubuntu από προεπιλογή. Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε την εντολή `mail`.

$sudoκατάλληλοςεγκαθιστώmailutils

Η ακόλουθη εντολή θα εμφανίσει την έκδοση αυτής της εντολής εάν είναι εγκατεστημένη στο σύστημα.

$ταχυδρομείο-V

Η επιλογή «-s» χρησιμοποιείται στην εντολή «αλληλογραφία» για να ορίσετε το θέμα του μηνύματος ηλεκτρονικού ταχυδρομείου. Εκτελέστε την εντολή «αλληλογραφία» με την επιλογή «-s» με θέμα email και τη διεύθυνση ηλεκτρονικού ταχυδρομείου παραλήπτη, όπως η ακόλουθη εντολή. Θα ζητήσει Cc: διεύθυνση. Εάν δεν θέλετε να χρησιμοποιήσετε το πεδίο Cc:, κρατήστε το κενό και πατήστε enter. Πληκτρολογήστε το σώμα του μηνύματος και πατήστε Ctrl+D για να στείλετε το email.

$ταχυδρομείο-μικρό 'θέμα'όνομα χρήστη@gmail.com

Εάν θέλετε να προσθέσετε το σώμα μηνυμάτων email στην εντολή, χρησιμοποιήστε το «<<<’ operator like the following command.

$ταχυδρομείο-μικρό 'θέμα μηνύματος'όνομα χρήστη@gmail.com<<< 'δοκιμαστικό σώμα μηνυμάτων'

Μπορείτε επίσης να προσθέσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου αποστολέα με την εντολή «mail» χρησιμοποιώντας την επιλογή «-a». Η ακόλουθη εντολή θα στείλει το email με το θέμα, «θέμα μηνύματος», όνομα αποστολέα και διεύθυνση ηλεκτρονικού ταχυδρομείου, «Διαχειριστής<[προστασία ηλεκτρονικού ταχυδρομείου]> »Και διεύθυνση ηλεκτρονικού ταχυδρομείου παραλήπτη,[προστασία ηλεκτρονικού ταχυδρομείου]και σώμα μηνύματος, «δοκιμαστικό μήνυμα».

$ mail-μικρό 'θέμα μηνύματος' -προς τοΑπό: Διαχειριστής <διαχειριστής@example.com >>
όνομα χρήστη@gmail.com<<< 'δοκιμαστικό μήνυμα'

Μπορείτε επίσης να στείλετε ένα σώμα μηνυμάτων email χρησιμοποιώντας την εντολή echo and pipe (|). Η ακόλουθη εντολή χρησιμοποιεί την εντολή pipe (|) για να στείλει το σώμα του μηνύματος.

$πέταξε έξω 'δοκιμαστικό μήνυμα' |ταχυδρομείο-μικρό 'θέμα μηνύματος'όνομα χρήστη@example.com

Το μήνυμα ηλεκτρονικού ταχυδρομείου μπορεί να σταλεί σε πολλούς παραλήπτες χρησιμοποιώντας την εντολή «mail» και προσθέτοντας τις διευθύνσεις των παραληπτών διαχωρίζοντας κόμμα. Η ακόλουθη εντολή θα σταλεί ένα email σε δύο παραλήπτες.

$ταχυδρομείο-μικρό «Δοκιμή email»όνομα χρήστη 1@example.com, όνομα χρήστη 2@example.com<test.txt

Παράδειγμα-3: Χρήση της εντολής `mutt`

Όπως και η εντολή «mail», η εντολή «mutt» δεν είναι εγκατεστημένη στο Ubuntu από προεπιλογή. Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε την εντολή `mutt`.

$sudoκατάλληλοςεγκαθιστώγκαφατζής

Η εντολή 'mutt' λειτουργεί παρόμοια με την εντολή 'mail', αλλά η εντολή 'mutt' έχει δικό της επεξεργαστή για την αποστολή του email. Εκτελέστε την ακόλουθη εντολή με την έγκυρη διεύθυνση email για να στείλετε το email.

$πέταξε έξωδοκιμαστικό μήνυμα|γκαφατζής-μικρό «Δοκιμαστικό email»όνομα χρήστη@example.com

Μπορείτε να επισυνάψετε οποιοδήποτε αρχείο χρησιμοποιώντας την επιλογή «-a» με την εντολή «mail» ή «mutt». Η ακόλουθη εντολή θα επισυνάψει το αρχείο items.txt κατά την αποστολή του μηνύματος ηλεκτρονικού ταχυδρομείου.

$πέταξε έξω 'δοκιμαστικό μήνυμα' |γκαφατζής-μικρό 'θέμα μηνύματος' -προς τοitems.txt-όνομα χρήστη@gmail.com

Παράδειγμα-4: Χρήση της εντολής ‘SSMTP’

Μια άλλη εντολή email είναι η εντολή `ssmtp`. Εάν το ssmtp δεν είναι εγκατεστημένο πριν, εγκαταστήστε πρώτα το πακέτο. Η εντολή εγκατάστασης για το ssmtp εμφανίζεται στο παράδειγμα-1. Οι εντολές ssmtp και sendmail λειτουργούν παρόμοια.

Εκτελέστε την ακόλουθη εντολή με την έγκυρη διεύθυνση email. Πληκτρολογήστε το θέμα και το σώμα του email. Πατήστε ctrl+D για έξοδο και αποστολή του email.

$όνομα χρήστη ssmtp@gmail.com

Παράδειγμα-5: Χρήση της εντολής mailx

Μπορείτε να στείλετε περιεχόμενο HTML ως σώμα email χωρίς απλώς να στείλετε το μήνυμα κειμένου. Δημιουργήστε ένα αρχείο HTML που ονομάζεται «test.html» για χρήση ως σώμα μηνύματος.

test.html

< html >>
< σώμα >>>>
< η3 >>Αποστολή email</ η3 >>
< φτιαχνω, κανω Μέγεθος='2' χρώμα='καθαρά'>>Δοκιμή σώματος μηνύματος</ φτιαχνω, κανω >>
<</ σώμα >>
</ html >>

Η εντολή 'mailx' λειτουργεί σαν εντολή 'mail'. Πρέπει να αναφέρετε Content-Type ως κείμενο/html για να στείλετε περιεχόμενο HTML ως σώμα μηνύματος στην εντολή `mailx`. Η ακόλουθη εντολή θα στείλει το περιεχόμενο του αρχείου ‘test.html’ ως σώμα μηνύματος email.

$ mailx-προς το 'Content-Type: text/html' -μικρό 'Αποστολή email μέσω mailx'
<test.html'[email protected]'

Όταν ελέγξετε τα εισερχόμενα του λογαριασμού email παραλήπτη, τότε η λίστα των μηνυμάτων ηλεκτρονικού ταχυδρομείου θα εμφανιστεί ως η ακόλουθη εικόνα.

συμπέρασμα

Αφού εξασκήσετε σωστά τις παραπάνω εντολές, ελπίζουμε ότι ο αναγνώστης θα είναι σε θέση να στείλει email εύκολα από τη γραμμή εντολών στο Linux.