Το sendmail(8) είναι ο προεπιλεγμένος Αντιπρόσωπος Μεταφοράς Ταχυδρομείου (Mail Transfer Agent, MTA) στο FreeBSD. Δουλειά του είναι να δέχεται το email από τους Αντιπροσώπους Email Χρήστη (Mail User Agents, MUA) και να το παραδίδει στο κατάλληλο mailer που ορίζεται στο αρχείο ρυθμίσεων του. Το sendmail μπορεί επίσης να δεχθεί συνδέσεις δικτύου και να παραδώσει το mail σε τοπικές θυρίδες ή και σε κάποιο άλλο πρόγραμμα.
Το sendmail χρησιμοποιεί τα ακόλουθα αρχεία ρυθμίσεων:
Όνομα Αρχείου | Λειτουργία |
---|---|
/etc/mail/access
| Η βάση δεδομένων πρόσβασης του sendmail. |
/etc/mail/aliases
| Παρωνύμια (aliases) για τις θυρίδες (Mailboxes) |
/etc/mail/local-host-names
| Λίστα των υπολογιστών για τους οποίους το sendmail δέχεται mail |
/etc/mail/mailer.conf
| Ρυθμίσεις του προγράμματος mailer |
/etc/mail/mailertable
| Πίνακας παραδόσεων του mailer |
/etc/mail/sendmail.cf
| Το κεντρικό αρχείο ρυθμίσεων του sendmail |
/etc/mail/virtusertable
| Πίνακας εικονικών χρηστών και περιοχών (domains) |
Η βάση δεδομένων πρόσβασης καθορίζει ποιοι υπολογιστές ή
διευθύνσεις IP έχουν πρόσβαση στον τοπικό εξυπηρετητή mail και τι
είδους πρόσβαση έχουν. Η καταχώρηση ενός υπολογιστή μπορεί να έχει
τις επιλογές OK
, REJECT
,
RELAY
ή απλά να μεταβιβάζει τον έλεγχο στη ρουτίνα
διαχείρισης λαθών του sendmail με κάποιο
συγκεκριμένο σφάλμα. Οι υπολογιστές που είναι καταχωρημένοι με την
επιλογή OK
, η οποία είναι και η προεπιλεγμένη,
επιτρέπεται να στείλουν email σε αυτό τον υπολογιστή, εφόσον ο
τελικός προορισμός του μηνύματος είναι το τοπικό μηχάνημα. Οι
υπολογιστές που είναι καταχωρημένοι με την επιλογή
REJECT
απορρίπτονται για οποιαδήποτε επικοινωνία
έχει να κάνει με μετάδοση mail. Οι υπολογιστές που είναι
καταχωρημένοι με την επιλογή RELAY
, έχουν τη
δυνατότητα να στείλουν mail προς οποιαδήποτε κατεύθυνση μέσω του
συγκεκριμένου εξυπηρετητή.
Σε αυτό το παράδειγμα έχουμε πέντε καταχωρήσεις. Οι διευθύνσεις
που φαίνονται στην αριστερή πλευρά του πίνακα, επηρεάζονται από τη
ενέργεια που φαίνεται στη δεξιά πλευρά. Τα πρώτα δύο παραδείγματα,
επιστρέφουν ένα κωδικό σφάλματος στη ρουτίνα διαχείρισης λαθών του
sendmail. Το μήνυμα εκτυπώνεται στον
απομακρυσμένο υπολογιστή, όταν το mail που λαμβάνεται ανήκει σε
κάποια από τις κατηγορίες της αριστερής πλευράς του πίνακα.
Η επόμενη καταχώρηση απορρίπτει την παραλαβή mail από ένα
συγκεκριμένο υπολογιστή στο Internet, τον
another.source.of.spam
. Η επόμενη καταχώρηση κάνει
δεκτές τις συνδέσεις mail από τον υπολογιστή
okay.cyberspammer.com
, το όνομα του
οποίου προσδιορίζεται ακριβέστερα σε σχέση με τη γραμμή
cyberspammer.com
που είδαμε
παραπάνω. Γραμμές που καθορίζουν ονόματα με μεγαλύτερη ακρίβεια,
έχουν προτεραιότητα σε σχέση με πιο ανακριβείς. Η τελευταία
καταχώρηση επιτρέπει την αναμετάδοση (relaying) ηλεκτρονικού
ταχυδρομείου από υπολογιστές με διευθύνσεις IP που ξεκινάνε με
128.32
. Οι υπολογιστές αυτοί, μπορούν να στείλουν
mail μέσω του συγκεκριμένου εξυπηρετητή, το οποίο να κατευθύνεται σε
άλλους εξυπηρετητές ταχυδρομείου.
Σε περίπτωση ανανέωσης αυτού του αρχείου, θα πρέπει να εκτελέσετε
την εντολή make
στον κατάλογο
/etc/mail/
για να ανανεώσετε τη βάση
δεδομένων.
Η βάση δεδομένων των παρωνυμίων (aliases), περιέχει μια λίστα από
εικονικές θυρίδες ταχυδρομείου που επεκτείνονται σε άλλους χρήστες,
αρχεία ή και άλλα παρωνύμια. Μερικά παραδείγματα χρήσης του
/etc/mail/aliases
φαίνονται παρακάτω:
Η μορφή του αρχείου είναι απλή. Το όνομα της θυρίδας βρίσκεται
στην αριστερή πλευρά της άνω-κάτω τελείας, και επεκτείνεται στον
προορισμό που βρίσκεται στη δεξιά πλευρά. Το πρώτο παράδειγμα,
ορίζει ότι η θυρίδα του χρήστη root
θα
είναι στην πραγματικότητα η θυρίδα localuser
.
Για την θυρίδα αυτή, γίνεται ξανά αναζήτηση στη βάση δεδομένων των
παρωνυμιών. Αν δεν βρεθεί άλλο όνομα που να ταιριάζει, το μήνυμα θα
παραδοθεί στον τοπικό χρήστη localuser
. Το
επόμενο παράδειγμα δείχνει μια λίστα ταχυδρομείου. Τα μηνύματα που
απευθύνονται στη θυρίδα ftp-bugs
, κατευθύνονται
σε τρεις τοπικές θυρίδες, τις joe
,
eric
και paul
. Σημειώστε
ότι είναι δυνατόν να καθοριστεί μια απομακρυσμένη θυρίδα
χρησιμοποιώντας τη μορφή <user@example.com>
.
Το επόμενο παράδειγμα, δείχνει πως μπορεί να γίνει εγγραφή του mail
σε ένα αρχείο, στη συγκεκριμένη περίπτωση το
/dev/null
. Το τελευταίο παράδειγμα,
δείχνει πως γίνεται η αποστολή mail προς ένα πρόγραμμα.
Στο παράδειγμα αυτό, το μήνυμα γράφεται στην τυποποιημένη είσοδο
(standard input) του προγράμματος
/usr/local/bin/procmail
χρησιμοποιώντας ένα
UNIX® pipe.
Κάθε φορά που γίνεται ενημέρωση αυτού του αρχείου, θα πρέπει να
εκτελείτε την εντολή make
στον κατάλογο
/etc/mail/
, ώστε να ενημερωθεί η βάση
δεδομένων.
Πρόκειται για μια λίστα από ονόματα υπολογιστών, την οποία το
sendmail(8) θα δέχεται ως ονόματα για το τοπικό μηχάνημα.
Τοποθετήστε σε αυτήν τα ονόματα των υπολογιστών ή των τομέων για τους
οποίους θέλετε το sendmail να λαμβάνει
mail. Για παράδειγμα, αν ο συγκεκριμένος εξυπηρετητής mail πρόκειται
να λαμβάνει mail για τον τομέα
example.com
και για τον υπολογιστή
mail.example.com
, το αρχείο
local-host-names
θα μοιάζει με το
παρακάτω:
Κάθε φορά που ενημερώνεται αυτό το αρχείο, θα πρέπει να γίνεται επανεκκίνηση του sendmail(8) για να διαβάσει τις αλλαγές.
Το sendmail.cf
είναι το κεντρικό αρχείο
ρυθμίσεων του sendmail. Το αρχείο αυτό
ρυθμίζει τη συνολική συμπεριφορά του
sendmail, που περιλαμβάνει μεταξύ άλλων
την επανεγγραφή διευθύνσεων και την αποστολή μηνυμάτων απόρριψης προς
απομακρυσμένους εξυπηρετητές mail. Καθώς το αρχείο αυτό περιέχει τόσο
διαφορετικές ρυθμίσεις, είναι φυσικό να είναι αρκετά πολύπλοκο και
οι λεπτομέρειες του είναι έξω από το σκοπό αυτής της ενότητας.
Ευτυχώς, αυτό το αρχείο σπάνια χρειάζεται να αλλαχθεί σε τυπικούς
εξυπηρετητές mail.
Το βασικό αρχείο ρυθμίσεων του sendmail
μπορεί να παραχθεί με τη βοήθεια μακροεντολών τύπου
m4(1) που καθορίζουν τη συμπεριφορά και τα χαρακτηριστικά του
sendmail. Για περισσότερες πληροφορίες,
παρακαλούμε διαβάστε το
/usr/src/contrib/sendmail/cf/README
.
Για να ισχύσουν οι αλλαγές που κάνετε σε αυτό το αρχείο, θα πρέπει να επανεκκινήσετε το sendmail.
Το αρχείο virtusertable
αντιστοιχεί
διευθύνσεις mail εικονικών τομέων σε πραγματικές θυρίδες ταχυδρομείου.
Οι θυρίδες αυτές μπορεί να είναι τοπικές, απομακρυσμένες, παρωνύμια
που έχουν οριστεί στο /etc/mail/aliases
,
ή αρχεία.
Στο παραπάνω παράδειγμα, έχουμε μια αντιστοίχηση για τον τομέα
example.com
. Η επεξεργασία αυτού
του αρχείου γίνεται από πάνω προς τα κάτω, και σταματάει στην εύρεση
του πρώτου ονόματος που ταιριάζει. Η πρώτη γραμμή του παραδείγματος,
αντιστοιχεί το <root@example.com>
στην τοπική θυρίδα
root
. Η επόμενη καταχώρηση αντιστοιχεί το
<postmaster@example.com>
στη θυρίδα
postmaster
στον υπολογιστή
noc.example.net
. Τέλος, αν δεν βρεθεί
καμιά αντιστοίχηση για τον τομέα
example.com
, θα εφαρμοστεί η
τελευταία αντιστοίχηση, η οποία ταιριάζει με οποιοδήποτε mail σταλθεί
προς τον τομέα example.com
.
Στην περίπτωση αυτή, το μήνυμα θα παραδοθεί στην τοπική θυρίδα
joe
.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την
τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην
<doc@FreeBSD.org>.