1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
|
---
title: Κεφάλαιο 28. Ηλεκτρονικό Ταχυδρομείο
part: Μέρος IV. Δικτυακές Επικοινωνίες
prev: books/handbook/ppp-and-slip
next: books/handbook/network-servers
---
[[mail]]
= Ηλεκτρονικό Ταχυδρομείο
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:
:skip-front-matter:
:toc-title: Πίνακας Περιεχομένων
:table-caption: Πίνακας
:figure-caption: Σχήμα
:example-caption: Παράδειγμα
:xrefstyle: basic
:relfileprefix: ../
:outfilesuffix:
:sectnumoffset: 28
ifeval::["{backend}" == "html5"]
:imagesdir: ../../../../images/books/handbook/mail/
endif::[]
ifeval::["{backend}" == "pdf"]
:imagesdir: ../../../../static/images/books/handbook/mail/
endif::[]
ifeval::["{backend}" == "epub3"]
:imagesdir: ../../../../static/images/books/handbook/mail/
endif::[]
include::shared/authors.adoc[]
include::shared/releases.adoc[]
include::shared/el/mailing-lists.adoc[]
include::shared/el/teams.adoc[]
include::shared/el/urls.adoc[]
toc::[]
[[mail-synopsis]]
== Σύνοψη
Το "ηλεκτρονικό ταχυδρομείο", ευρύτερα γνωστό ως email, είναι στις μέρες μας μια από τις πλέον διαδεδομένες μορφές επικοινωνίας. Το κεφάλαιο αυτό παρέχει μια βασική εισαγωγή στη λειτουργία ενός διακομιστή email στο FreeBSD, καθώς και μια εισαγωγή στη διαδικασία αποστολής και λήψης email στο FreeBSD. Ωστόσο η αναφορά αυτή δεν πρέπει να θεωρηθεί πλήρης, καθώς υπάρχουν ακόμα αρκετοί παράγοντες που πρέπει να ληφθούν υπόψιν και έχουν εδώ παραλειφθεί. Για πιο πλήρη ανάλυση του θέματος, ο αναγνώστης παραπέμπεται στα πολλά εξαιρετικά βιβλία που αναφέρονται στο crossref:bibliography[bibliography,Βιβλιογραφία].
Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:
* Το λογισμικό που χρησιμοποιείται στην αποστολή και λήψη ηλεκτρονικού ταχυδρομείου.
* Που βρίσκονται τα βασικά αρχεία ρυθμίσεων του sendmail στο FreeBSD.
* Τη διαφορά μεταξύ απομακρυσμένων και τοπικών θυρίδων ταχυδρομείου (mailboxes).
* Πως να εμποδίσετε ανεπιθύμητους spammers από το να χρησιμοποιήσουν τον δικό σας εξυπηρετητή email ως αναμεταδότη.
* Πως να εγκαταστήσετε και να ρυθμίσετε ένα εναλλακτικό Αντιπρόσωπο Μεταφοράς Ταχυδρομείου (Mail Transfer Agent) στο σύστημα σας, αντικαθιστώντας έτσι το sendmail.
* Πως να αντιμετωπίσετε συνηθισμένα προβλήματα στον διακομιστή ταχυδρομείου.
* Πως να χρησιμοποιήσετε το SMTP με το UUCP.
* Πως να ρυθμίσετε το σύστημα σας μόνο για αποστολή email.
* Πως να χρησιμοποιήσετε το email μέσω επιλογικής (dialup) σύνδεσης.
* Πως να ρυθμίσετε πιστοποίηση αυθεντικότητας στο SMTP για πρόσθετη ασφάλεια.
* Πως να εγκαταστήσετε και να χρησιμοποιήσετε μια εφαρμογή αποστολής και λήψης email για χρήστες, όπως το mutt.
* Πως να κατεβάσετε το email σας από ένα απομακρυσμένο διακομιστή POP ή IMAP.
* Πως να εφαρμόσετε φίλτρα και κανόνες στην εισερχόμενη αλληλογραφία σας, με αυτόματο τρόπο.
Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:
* Να ρυθμίσετε σωστά τη σύνδεση του δικτύου σας (crossref:advanced-networking[advanced-networking,Προχωρημένα Θέματα Δικτύωσης]).
* Να ρυθμίσετε σωστά τις πληροφορίες DNS για τον διακομιστή αλληλογραφίας σας (crossref:network-servers[network-servers,Εξυπηρετητές Δικτύου]).
* Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου κατασκευαστή (crossref:ports[ports,Εγκατάσταση Εφαρμογών: Πακέτα και Ports]).
[[mail-using]]
== Χρησιμοποιώντας το Ηλεκτρονικό Ταχυδρομείο
Σε κάθε ανταλλαγή ηλεκτρονικού ταχυδρομείου, συνεργάζονται πέντε βασικά τμήματα: Το <<mail-mua,πρόγραμμα χρήστη>>, ο <<mail-mta,δαίμονας του εξυπηρετητή>>, το <<mail-dns,DNS>>, μια <<mail-receive,απομακρυσμένη ή τοπική θυρίδα ταχυδρομείου (mailbox)>> και φυσικά ο <<mail-host,υπολογιστής που διαχειρίζεται το email (mailhost)>>.
[[mail-mua]]
=== Το Πρόγραμμα Χρήστη
Η κατηγορία αυτή περιλαμβάνει προγράμματα όπως τα mutt, alpine, elm, και `mail`, καθώς και προγράμματα που διαθέτουν GUI όπως είναι τα balsa, xfmail (για να δώσουμε μερικά παραδείγματα) και κάποια πιο "εξελιγμένα" όπως είναι οι φυλλομετρητές για το WWW. Τα προγράμματα αυτά, απλώς μεταβιβάζουν τις συναλλαγές ταχυδρομείου στον τοπικό <<mail-host,"mailhost">>, είτε καλώντας κάποιον από τους <<mail-mta,δαίμονες του εξυπηρετητή>> που είναι διαθέσιμοι, ή παραδίδοντας τις απευθείας μέσω TCP.
[[mail-mta]]
=== Δαίμονας Εξυπηρετητή Mailhost
Το FreeBSD έρχεται με το sendmail εγκατεστημένο από προεπιλογή, αλλά υποστηρίζει επίσης και μεγάλο αριθμό από άλλους δαίμονες ταχυδρομείου, περιλαμβανομένων και των:
* exim
* postfix
* qmail
Ο δαίμονας έχει συνήθως δύο λειτουργίες-είναι υπεύθυνος για τη λήψη εισερχόμενου mail, όπως επίσης και την παράδοση του εξερχόμενου mail. Όμως, _δεν είναι_ υπεύθυνος για τη συλλογή του mail με τη χρήση πρωτοκόλλων όπως τα POP ή IMAP για την ανάγνωση του ταχυδρομείου σας, ούτε επιτρέπει τη σύνδεση στις τοπικές θυρίδες τύπου [.filename]#mbox# ή Maildir. Πιθανόν να χρειαστείτε κάποιο επιπρόσθετο <<mail-receive,δαίμονα>> για αυτό το σκοπό.
[WARNING]
====
Παλιότερες εκδόσεις του sendmail έχουν κάποια σοβαρά προβλήματα ασφαλείας, μέσω των οποίων μπορεί κάποιος εισβολέας να αποκτήσει τοπική ή απομακρυσμένη πρόσβαση στο μηχάνημα σας. Για να αποφύγετε προβλήματα τέτοιου είδους, βεβαιωθείτε ότι χρησιμοποιείτε κάποια πρόσφατη έκδοση. Εναλλακτικά, μπορείτε να εγκαταστήσετε κάποιο άλλο MTA από την crossref:ports[ports,Συλλογή των Ports του FreeBSD].
====
[[mail-dns]]
=== Email και DNS
Το Σύστημα Ονομασίας Περιοχών (DNS) και ο δαίμονας του, ο `named`, έχουν σημαντικό ρόλο στην παράδοση του email. Για την παράδοση του email από το ένα site σε ένα άλλο, ο δαίμονας του εξυπηρετητή θα ψάξει για το απομακρυσμένο site στο DNS, για να καθορίσει ποιος υπολογιστής λαμβάνει το email για το συγκεκριμένο προορισμό. Η διαδικασία αυτή συμβαίνει επίσης όταν ο δικός σας εξυπηρετητής λαμβάνει email από κάποιο απομακρυσμένο υπολογιστή.
Το DNS είναι υπεύθυνο για την αντιστοίχηση ονομάτων υπολογιστών σε διευθύνσεις IP, όπως και για την αποθήκευση πληροφοριών που σχετίζονται με την παράδοση ηλεκτρονικού ταχυδρομείου, όπως οι εγγραφές MX. Η εγγραφή MX (Mail Exchanger) αναγνωρίζει ποιος υπολογιστής (ή υπολογιστές) θα είναι υπεύθυνος για τη λήψη ταχυδρομείου ενός συγκεκριμένου τομέα (domain). Αν δεν έχετε εγγραφή MX για τον υπολογιστή ή τον τομέα σας, το email θα παραδίδεται απευθείας στον υπολογιστή σας, με την προϋπόθεσή ότι έχετε εγγραφή τύπου A που να δείχνει στον υπολογιστή σας ή στην IP διεύθυνση του.
Μπορείτε να δείτε τις εγγραφές MX για οποιοδήποτε τομέα, χρησιμοποιώντας την εντολή man:host[1], όπως φαίνεται στο παρακάτω παράδειγμα:
[source,shell]
....
% host -t mx FreeBSD.org
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org
....
[[mail-receive]]
=== Λαμβάνοντας Mail
Ο mailhost είναι υπεύθυνος για την λήψη mail που προορίζεται για τον τομέα σας. Θα συλλέξει όλο το mail που έρχεται προς τον τομέα, και θα το αποθηκεύσει είτε στο [.filename]#mbox# (την προεπιλεγμένη μέθοδο για αποθήκευση mail) ή σε μορφή Maildir, ανάλογα με τις ρυθμίσεις που έχετε κάνει. Από τη στιγμή που το mail έχει αποθηκευθεί, μπορείτε είτε να το διαβάσετε τοπικά, χρησιμοποιώντας εφαρμογές όπως το man:mail[1] ή το mutt, ή να το δείτε μέσω απομακρυσμένης σύνδεσης, χρησιμοποιώντας κάποιο πρωτόκολλο όπως το POP ή το IMAP. Αυτό σημαίνει ότι αν επιθυμείτε να διαβάζετε το mail σας μόνο τοπικά, δεν χρειάζεται να εγκαταστήσετε εξυπηρετητή POP ή IMAP.
[[pop-and-imap]]
==== Πρόσβαση σε Απομακρυσμένες Θυρίδες μέσω POP και IMAP
Για να έχετε απομακρυσμένη πρόσβαση στις θυρίδες ταχυδρομείου, είναι απαραίτητο να έχετε πρόσβαση σε ένα εξυπηρετητή POP ή IMAP. Τα πρωτόκολλα αυτά, επιτρέπουν στους χρήστες να συνδέονται στις θυρίδες τους από απόσταση, με μεγάλη ευκολία. Και τα δύο πρωτόκολλα (POP και IMAP) επιτρέπουν στους χρήστες απομακρυσμένη πρόσβαση στις θυρίδες τους, αλλά το IMAP προσφέρει αρκετά πλεονεκτήματα, ορισμένα από τα οποία φαίνονται παρακάτω:
* Το IMAP μπορεί να αποθηκεύσει μηνύματα σε ένα απομακρυσμένο εξυπηρετητή, όπως επίσης και να τα ανακτήσει.
* Το IMAP υποστηρίζει ταυτόχρονες ενημερώσεις.
* Το IMAP μπορεί να φανεί εξαιρετικά χρήσιμο σε συνδέσεις χαμηλής ταχύτητας, καθώς επιτρέπει στους χρήστες να κατεβάσουν τη δομή των μηνυμάτων, χωρίς να κατεβάσουν το περιεχόμενο τους. Μπορεί επίσης να εκτελέσει εργασίες όπως εύρεση μηνυμάτων απευθείας στον εξυπηρετητή, ελαχιστοποιώντας με αυτό τον τρόπο τη μεταφορά δεδομένων μεταξύ των πελατών και των εξυπηρετητών.
Για να εγκαταστήσετε ένα εξυπηρετητή POP ή IMAP θα πρέπει να ακολουθήσετε τα επόμενα βήματα:
[.procedure]
. Επιλέξτε ένα εξυπηρετητή IMAP ή POP που να εξυπηρετεί τις ανάγκες σας. Οι παρακάτω εξυπηρετητές POP και IMAP είναι αρκετά διαδεδομένοι και αποτελούν καλά παραδείγματα:
** qpopper
** teapop
** imap-uw
** courier-imap
** dovecot
. Εγκαταστήστε το δαίμονα POP ή IMAP της επιλογής σας, από την Συλλογή των Ports.
. Αν χρειάζεται, τροποποιήστε το αρχείο [.filename]#/etc/inetd.conf# για να φορτώσετε τον εξυπηρετητή POP ή IMAP.
[WARNING]
====
Θα πρέπει να σημειώσουμε ότι τόσο το POP όσο και το IMAP μεταδίδουν πληροφορίες όπως το όνομα χρήστη και τον κωδικό σε μορφή απλού κειμένου. Αυτό σημαίνει ότι αν θέλετε να ασφαλίσετε τη μετάδοση πληροφοριών μέσω αυτών των πρωτοκόλλων, θα πρέπει να περάσετε αυτές τις συνδέσεις μέσω του man:ssh[1] (tunneling) ή να χρησιμοποιήσετε SSL. Η διαδικασία tunneling περιγράφεται με λεπτομέρεια στο crossref:security[security-ssh-tunneling,SSH Tunneling] και το SSL στο crossref:security[openssl,OpenSSL].
====
[[local]]
==== Πρόσβαση σε Τοπικές Θυρίδες Ταχυδρομείου
Μπορείτε να έχετε τοπική πρόσβαση στις θυρίδες ταχυδρομείου χρησιμοποιώντας απευθείας κάποιο πρόγραμμα αποστολής/λήψης (MUA) στον εξυπηρετητή που είναι αποθηκευμένες. Κατάλληλες εφαρμογές για αυτό το σκοπό είναι π.χ. το mutt ή το man:mail[1].
[[mail-host]]
=== Ο Εξυπηρετητής Mail
Εξυπηρετητής mail θεωρείται ο υπολογιστής ο οποίος είναι υπεύθυνος για την παράδοση και λήψη mail για τον υπολογιστή σας, και ενδεχομένως για το δίκτυο σας.
[[sendmail]]
== Ρύθμιση του sendmail
Το man:sendmail[8] είναι ο προεπιλεγμένος Αντιπρόσωπος Μεταφοράς Ταχυδρομείου (Mail Transfer Agent, MTA) στο FreeBSD. Δουλειά του είναι να δέχεται το email από τους Αντιπροσώπους Email Χρήστη (Mail User Agents, MUA) και να το παραδίδει στο κατάλληλο mailer που ορίζεται στο αρχείο ρυθμίσεων του. Το sendmail μπορεί επίσης να δεχθεί συνδέσεις δικτύου και να παραδώσει το mail σε τοπικές θυρίδες ή και σε κάποιο άλλο πρόγραμμα.
Το sendmail χρησιμοποιεί τα ακόλουθα αρχεία ρυθμίσεων:
[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Όνομα Αρχείου
| Λειτουργία
|[.filename]#/etc/mail/access#
|Η βάση δεδομένων πρόσβασης του sendmail.
|[.filename]#/etc/mail/aliases#
|Παρωνύμια (aliases) για τις θυρίδες (Mailboxes)
|[.filename]#/etc/mail/local-host-names#
|Λίστα των υπολογιστών για τους οποίους το sendmail δέχεται mail
|[.filename]#/etc/mail/mailer.conf#
|Ρυθμίσεις του προγράμματος mailer
|[.filename]#/etc/mail/mailertable#
|Πίνακας παραδόσεων του mailer
|[.filename]#/etc/mail/sendmail.cf#
|Το κεντρικό αρχείο ρυθμίσεων του sendmail
|[.filename]#/etc/mail/virtusertable#
|Πίνακας εικονικών χρηστών και περιοχών (domains)
|===
=== [.filename]#/etc/mail/access#
Η βάση δεδομένων πρόσβασης καθορίζει ποιοι υπολογιστές ή διευθύνσεις IP έχουν πρόσβαση στον τοπικό εξυπηρετητή mail και τι είδους πρόσβαση έχουν. Η καταχώρηση ενός υπολογιστή μπορεί να έχει τις επιλογές `OK`, `REJECT`, `RELAY` ή απλά να μεταβιβάζει τον έλεγχο στη ρουτίνα διαχείρισης λαθών του sendmail με κάποιο συγκεκριμένο σφάλμα. Οι υπολογιστές που είναι καταχωρημένοι με την επιλογή `OK`, η οποία είναι και η προεπιλεγμένη, επιτρέπεται να στείλουν email σε αυτό τον υπολογιστή, εφόσον ο τελικός προορισμός του μηνύματος είναι το τοπικό μηχάνημα. Οι υπολογιστές που είναι καταχωρημένοι με την επιλογή `REJECT` απορρίπτονται για οποιαδήποτε επικοινωνία έχει να κάνει με μετάδοση mail. Οι υπολογιστές που είναι καταχωρημένοι με την επιλογή `RELAY`, έχουν τη δυνατότητα να στείλουν mail προς οποιαδήποτε κατεύθυνση μέσω του συγκεκριμένου εξυπηρετητή.
.Ρύθμιση της Βάσης Δεδομένων Πρόσβασης του sendmail
[example]
====
[.programlisting]
....
cyberspammer.com 550 We do not accept mail from spammers
FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAY
....
====
Σε αυτό το παράδειγμα έχουμε πέντε καταχωρήσεις. Οι διευθύνσεις που φαίνονται στην αριστερή πλευρά του πίνακα, επηρεάζονται από τη ενέργεια που φαίνεται στη δεξιά πλευρά. Τα πρώτα δύο παραδείγματα, επιστρέφουν ένα κωδικό σφάλματος στη ρουτίνα διαχείρισης λαθών του sendmail. Το μήνυμα εκτυπώνεται στον απομακρυσμένο υπολογιστή, όταν το mail που λαμβάνεται ανήκει σε κάποια από τις κατηγορίες της αριστερής πλευράς του πίνακα. Η επόμενη καταχώρηση απορρίπτει την παραλαβή mail από ένα συγκεκριμένο υπολογιστή στο Internet, τον `another.source.of.spam`. Η επόμενη καταχώρηση κάνει δεκτές τις συνδέσεις mail από τον υπολογιστή `okay.cyberspammer.com`, το όνομα του οποίου προσδιορίζεται ακριβέστερα σε σχέση με τη γραμμή `cyberspammer.com` που είδαμε παραπάνω. Γραμμές που καθορίζουν ονόματα με μεγαλύτερη ακρίβεια, έχουν προτεραιότητα σε σχέση με πιο ανακριβείς. Η τελευταία καταχώρηση επιτρέπει την αναμετάδοση (relaying) ηλεκτρονικού ταχυδρομείου από υπολογιστές με διευθύνσεις IP που ξεκινάνε με `128.32`. Οι υπολογιστές αυτοί, μπορούν να στείλουν mail μέσω του συγκεκριμένου εξυπηρετητή, το οποίο να κατευθύνεται σε άλλους εξυπηρετητές ταχυδρομείου.
Σε περίπτωση ανανέωσης αυτού του αρχείου, θα πρέπει να εκτελέσετε την εντολή `make` στον κατάλογο [.filename]#/etc/mail/# για να ανανεώσετε τη βάση δεδομένων.
=== [.filename]#/etc/mail/aliases#
Η βάση δεδομένων των παρωνυμίων (aliases), περιέχει μια λίστα από εικονικές θυρίδες ταχυδρομείου που επεκτείνονται σε άλλους χρήστες, αρχεία ή και άλλα παρωνύμια. Μερικά παραδείγματα χρήσης του [.filename]#/etc/mail/aliases# φαίνονται παρακάτω:
.Παρωνύμια Mail
[example]
====
[.programlisting]
....
root: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"
....
====
Η μορφή του αρχείου είναι απλή. Το όνομα της θυρίδας βρίσκεται στην αριστερή πλευρά της άνω-κάτω τελείας, και επεκτείνεται στον προορισμό που βρίσκεται στη δεξιά πλευρά. Το πρώτο παράδειγμα, ορίζει ότι η θυρίδα του χρήστη `root` θα είναι στην πραγματικότητα η θυρίδα `localuser`. Για την θυρίδα αυτή, γίνεται ξανά αναζήτηση στη βάση δεδομένων των παρωνυμιών. Αν δεν βρεθεί άλλο όνομα που να ταιριάζει, το μήνυμα θα παραδοθεί στον τοπικό χρήστη `localuser`. Το επόμενο παράδειγμα δείχνει μια λίστα ταχυδρομείου. Τα μηνύματα που απευθύνονται στη θυρίδα `ftp-bugs`, κατευθύνονται σε τρεις τοπικές θυρίδες, τις `joe`, `eric` και `paul`. Σημειώστε ότι είναι δυνατόν να καθοριστεί μια απομακρυσμένη θυρίδα χρησιμοποιώντας τη μορφή mailto:user@example.com[user@example.com]. Το επόμενο παράδειγμα, δείχνει πως μπορεί να γίνει εγγραφή του mail σε ένα αρχείο, στη συγκεκριμένη περίπτωση το [.filename]#/dev/null#. Το τελευταίο παράδειγμα, δείχνει πως γίνεται η αποστολή mail προς ένα πρόγραμμα. Στο παράδειγμα αυτό, το μήνυμα γράφεται στην τυποποιημένη είσοδο (standard input) του προγράμματος [.filename]#/usr/local/bin/procmail# χρησιμοποιώντας ένα UNIX(R) pipe.
Κάθε φορά που γίνεται ενημέρωση αυτού του αρχείου, θα πρέπει να εκτελείτε την εντολή `make` στον κατάλογο [.filename]#/etc/mail/#, ώστε να ενημερωθεί η βάση δεδομένων.
=== [.filename]#/etc/mail/local-host-names#
Πρόκειται για μια λίστα από ονόματα υπολογιστών, την οποία το man:sendmail[8] θα δέχεται ως ονόματα για το τοπικό μηχάνημα. Τοποθετήστε σε αυτήν τα ονόματα των υπολογιστών ή των τομέων για τους οποίους θέλετε το sendmail να λαμβάνει mail. Για παράδειγμα, αν ο συγκεκριμένος εξυπηρετητής mail πρόκειται να λαμβάνει mail για τον τομέα `example.com` και για τον υπολογιστή `mail.example.com`, το αρχείο [.filename]#local-host-names# θα μοιάζει με το παρακάτω:
[.programlisting]
....
example.com
mail.example.com
....
Κάθε φορά που ενημερώνεται αυτό το αρχείο, θα πρέπει να γίνεται επανεκκίνηση του man:sendmail[8] για να διαβάσει τις αλλαγές.
=== [.filename]#/etc/mail/sendmail.cf#
Το [.filename]#sendmail.cf# είναι το κεντρικό αρχείο ρυθμίσεων του sendmail. Το αρχείο αυτό ρυθμίζει τη συνολική συμπεριφορά του sendmail, που περιλαμβάνει μεταξύ άλλων την επανεγγραφή διευθύνσεων και την αποστολή μηνυμάτων απόρριψης προς απομακρυσμένους εξυπηρετητές mail. Καθώς το αρχείο αυτό περιέχει τόσο διαφορετικές ρυθμίσεις, είναι φυσικό να είναι αρκετά πολύπλοκο και οι λεπτομέρειες του είναι έξω από το σκοπό αυτής της ενότητας. Ευτυχώς, αυτό το αρχείο σπάνια χρειάζεται να αλλαχθεί σε τυπικούς εξυπηρετητές mail.
Το βασικό αρχείο ρυθμίσεων του sendmail μπορεί να παραχθεί με τη βοήθεια μακροεντολών τύπου man:m4[1] που καθορίζουν τη συμπεριφορά και τα χαρακτηριστικά του sendmail. Για περισσότερες πληροφορίες, παρακαλούμε διαβάστε το [.filename]#/usr/src/contrib/sendmail/cf/README#.
Για να ισχύσουν οι αλλαγές που κάνετε σε αυτό το αρχείο, θα πρέπει να επανεκκινήσετε το sendmail.
=== [.filename]#/etc/mail/virtusertable#
Το αρχείο [.filename]#virtusertable# αντιστοιχεί διευθύνσεις mail εικονικών τομέων σε πραγματικές θυρίδες ταχυδρομείου. Οι θυρίδες αυτές μπορεί να είναι τοπικές, απομακρυσμένες, παρωνύμια που έχουν οριστεί στο [.filename]#/etc/mail/aliases#, ή αρχεία.
.Παράδειγμα Αντιστοίχησης Mail Εικονικού Τομέα
[example]
====
[.programlisting]
....
root@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joe
....
====
Στο παραπάνω παράδειγμα, έχουμε μια αντιστοίχηση για τον τομέα `example.com`. Η επεξεργασία αυτού του αρχείου γίνεται από πάνω προς τα κάτω, και σταματάει στην εύρεση του πρώτου ονόματος που ταιριάζει. Η πρώτη γραμμή του παραδείγματος, αντιστοιχεί το mailto:root@example.com[root@example.com] στην τοπική θυρίδα `root`. Η επόμενη καταχώρηση αντιστοιχεί το mailto:postmaster@example.com[postmaster@example.com] στη θυρίδα `postmaster` στον υπολογιστή `noc.example.net`. Τέλος, αν δεν βρεθεί καμιά αντιστοίχηση για τον τομέα `example.com`, θα εφαρμοστεί η τελευταία αντιστοίχηση, η οποία ταιριάζει με οποιοδήποτε mail σταλθεί προς τον τομέα `example.com`. Στην περίπτωση αυτή, το μήνυμα θα παραδοθεί στην τοπική θυρίδα `joe`.
[[mail-changingmta]]
== Αλλάζοντας τον Αντιπρόσωπο Μεταφοράς Ταχυδρομείου (MTA)
Όπως έχουμε ήδη αναφέρει, το FreeBSD έρχεται με το sendmail προεγκατεστημένο ως Αντιπρόσωπο Μεταφοράς Ταχυδρομείου (Mail Transfer Agent, MTA). Το πρόγραμμα αυτό είναι από προεπιλογή υπεύθυνο για την εισερχόμενη και εξερχόμενη αλληλογραφία.
Υπάρχει ωστόσο πληθώρα λόγων για τους οποίους κάποιοι διαχειριστές επιλέγουν να αλλάξουν το MTA του συστήματος τους. Οι λόγοι αυτοί κυμαίνονται από το ότι απλά θέλουν να δοκιμάσουν κάποιο άλλο MTA, ως και το ότι χρειάζονται κάποιο ιδιαίτερο χαρακτηριστικό ή δυνατότητα που υπάρχει σε κάποιο άλλο mailer. Ευτυχώς, το FreeBSD κάνει εύκολη την αλλαγή του αντιπροσώπου.
=== Εγκαταστήστε Νέο MTA
Υπάρχουν αρκετοί MTA για να επιλέξετε. Ένα καλό σημείο εκκίνησης είναι η crossref:ports[ports,Συλλογή των Ports του FreeBSD] όπου και θα μπορέσετε να βρείτε αρκετούς. Φυσικά είστε ελεύθερος να επιλέξετε όποιο MTA θέλετε από οπουδήποτε, όσο τουλάχιστον μπορείτε να το κάνετε να εκτελείτε στο FreeBSD.
Ξεκινήστε εγκαθιστώντας το νέο σας MTA. Μετά την εγκατάσταση, θα έχετε την ευκαιρία να αποφασίσετε αν πραγματικά καλύπτει τις ανάγκες σας, καθώς και να ολοκληρώσετε τις ρυθμίσεις του πριν μεταφέρετε τη διαχείριση mail του συστήματος από το sendmail στο νέο σας πρόγραμμα. Κατά την εγκατάσταση, βεβαιωθείτε ότι το νέο σας λογισμικό δεν θα προσπαθήσει να εγκατασταθεί πάνω στα υπάρχοντα εκτελέσιμα του συστήματος, όπως το [.filename]#/usr/bin/sendmail#. Διαφορετικά, θα έχετε ουσιαστικά βάλει το νέο σας λογισμικό mail σε χρήση, πριν προλάβετε καλά-καλά να το ρυθμίσετε.
Παρακαλούμε να διαβάσετε την τεκμηρίωση του MTA που επιλέξατε, για πληροφορίες σχετικά με τη ρύθμιση του.
[[mail-disable-sendmail]]
=== Απενεργοποιήστε το sendmail
[WARNING]
====
Αν απενεργοποιήσετε τη δυνατότητα αποστολής (εξερχόμενα) του sendmail, είναι σημαντικό να την αντικαταστήσετε με ένα εναλλακτικό σύστημα παράδοσης mail. Αν επιλέξετε να μην κάνετε το παραπάνω, τα μηνύματα του συστήματος, όπως αυτά που παράγονται από το man:periodic[8], δεν θα μπορούν να παραδοθούν μέσω email, όπως είναι το αναμενόμενο. Πολλά τμήματα του συστήματος σας αναμένουν ότι υπάρχει σε λειτουργία ένα σύστημα συμβατό με το sendmail. Αν οι εφαρμογές συνεχίζουν να χρησιμοποιούν τα εκτελέσιμα του sendmail προσπαθώντας να στείλουν email μετά την απενεργοποίηση του, το mail πιθανώς θα βρεθεί σε μια ανενεργή ουρά του sendmail και δεν θα παραδοθεί ποτέ.
====
Για να απενεργοποιήσετε εντελώς το sendmail, συμπεριλαμβανομένης και της υπηρεσίας εξερχόμενων μηνυμάτων, χρησιμοποιήστε:
[.programlisting]
....
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
....
στο [.filename]#/etc/rc.conf.#
Αν θέλετε να απενεργοποιήσετε μόνο την υπηρεσία εισερχομένων του sendmail θα πρέπει να θέσετε:
[.programlisting]
....
sendmail_enable="NO"
....
στο [.filename]#/etc/rc.conf#. Περισσότερες πληροφορίες για τις επιλογές εκκίνησης του sendmail, διατίθενται από την αντίστοιχη σελίδα manual, man:rc.sendmail[8].
=== Εκκίνηση του Νέου σας MTA κατά την Εκκίνηση
Το νέο σας MTA θα ξεκινάει κατά την εκκίνηση, αν προσθέσετε μια κατάλληλη γραμμή στο αρχείο [.filename]#/etc/rc.conf#. Δείτε το παρακάτω παράδειγμα για το postfix:
[source,shell]
....
# echo 'postfix_enable="YES"' >> /etc/rc.conf
....
Το MTA θα ξεκινάει πλέον κατά την εκκίνηση.
=== Αντικαθιστώντας το sendmail από Προεπιλεγμένο Mailer Συστήματος
Το sendmail είναι τόσο γνωστό ως στάνταρ λογισμικό στα συστήματα UNIX(R), ώστε πολλά άλλα προγράμματα θεωρούν ότι είναι ήδη εγκατεστημένο και ρυθμισμένο. Για το λόγο αυτό, πολλά εναλλακτικά MTA παρέχουν δικές τους συμβατές υλοποιήσεις του sendmail. Οι υλοποιήσεις αυτές παρέχουν παρόμοιο σύνολο εντολών, και μπορούν έτσι να χρησιμοποιηθούν ώστε να αντικαταστήσουν "απευθείας" το sendmail.
Για το λόγο αυτό, αν χρησιμοποιείτε κάποιο εναλλακτικό mailer, θα θέλετε να εξασφαλίσετε ότι άλλα προγράμματα που προσπαθούν να εκτελέσουν τα τυπικά εκτελέσιμα του sendmail όπως το [.filename]#/usr/bin/sendmail#, θα εκτελέσουν στην πραγματικότητα τον επιλεγμένο σας mailer. Ευτυχώς, το FreeBSD παρέχει ένα σύστημα που καλείτε man:mailwrapper[8] και το οποίο αναλαμβάνει αυτή τη δουλειά για σας.
Όταν το sendmail λειτουργεί όπως έχει εγκατασταθεί αρχικά, θα βρείτε κάτι όπως το παρακάτω στο [.filename]#/etc/mail/mailer.conf#:
[.programlisting]
....
sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmail
....
Αυτό σημαίνει ότι όταν εκτελείται κάποια από αυτές τις συνηθισμένες εντολές (όπως το ίδιο το [.filename]#sendmail#), το σύστημα στην πραγματικότητα εκτελεί ένα αντίγραφο του mailwrapper που ονομάζεται [.filename]#sendmail#, και το οποίο ελέγχει το [.filename]#mailer.conf# και εκτελεί το [.filename]#/usr/libexec/sendmail/sendmail# αντί αυτού. Το σύστημα αυτό διευκολύνει ιδιαίτερα την αλλαγή των εκτελέσιμων που εκτελούνται στην πραγματικότητα όταν γίνεται κλήση των προεπιλεγμένων λειτουργιών του [.filename]#sendmail#.
Έτσι, αν θέλετε να εκτελείται το [.filename]#/usr/local/supermailer/bin/sendmail-compat# αντί για το sendmail, θα μπορούσατε να αλλάξετε το [.filename]#/etc/mail/mailer.conf# ώστε να γράφει:
[.programlisting]
....
sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compat
....
=== Ολοκληρώνοντας
Μόλις έχετε ρυθμίσει τα πάντα όπως επιθυμείτε, μπορείτε είτε να κάνετε kill τις διεργασίες του sendmail που δεν χρειάζεστε πλέον και να εκκινήσετε τις αντίστοιχες του νέου σας λογισμικού, ή απλώς να κάνετε επανεκκίνηση. Η επανεκκίνηση θα σας δώσει επίσης την ευκαιρία να βεβαιωθείτε ότι το σύστημα σας έχει ρυθμιστεί σωστά, ώστε το νέο σας MTA να ξεκινάει αυτόματα σε κάθε εκκίνηση.
[[mail-trouble]]
== Αντιμετώπιση Προβλημάτων
=== Γιατί πρέπει να χρησιμοποιώ το πλήρες όνομα (FQDN) για υπολογιστές που βρίσκονται στον τομέα μου;
Το πιο πιθανό είναι να διαπιστώσετε ότι ο υπολογιστής βρίσκεται στην πραγματικότητα σε διαφορετικό τομέα. Για παράδειγμα, αν βρίσκεστε στο `foo.bar.edu` και θέλετε να επικοινωνήσετε με ένα υπολογιστή με το όνομα `mumble` στον τομέα `bar.edu`, θα πρέπει να αναφερθείτε σε αυτόν με το πλήρες του όνομα, `mumble.bar.edu`, αντί για απλώς `mumble`.
Παραδοσιακά, αυτό επιτρεπόταν από τους DNS resolvers του BIND. Ωστόσο, η τρέχουσα έκδοση του BIND που περιλαμβάνεται στο FreeBSD, δεν παρέχει πλέον συντομεύσεις για μη-πλήρη ονόματα τομέων, εκτός για τον τομέα στον οποίο βρίσκεστε. Έτσι, ένας υπολογιστής με μη-πλήρες όνομα `mumble` θα πρέπει να βρεθεί ως `mumble.foo.bar.edu`, ή θα γίνει αναζήτηση για αυτόν στο ριζικό τομέα.
Η συμπεριφορά αυτή είναι διαφορετική από την προηγούμενη, όπου η αναζήτηση συνεχιζόταν και στο `mumble.bar.edu`, και το `mumble.edu`. Ρίξτε μια ματιά στο RFC 1535 για το λόγο που το παραπάνω θεωρείτε κακή πρακτική, ή ακόμα και κενό ασφαλείας.
Ένας τρόπος για να παρακάμψετε το πρόβλημα είναι να προσθέσετε τη γραμμή:
[.programlisting]
....
search foo.bar.edu bar.edu
....
αντί για την προηγούμενη:
[.programlisting]
....
domain foo.bar.edu
....
στο αρχείο [.filename]#/etc/resolv.conf#. Βεβαιωθείτε ωστόσο ότι η σειρά αναζήτησης δεν πηγαίνει πέρα από το "όριο μεταξύ τοπικής και δημόσιας διαχείρισης", όπως το αποκαλεί το RFC 1535.
=== Το sendmail δίνει το μήνυμα mail loops back to myself (το mail επιστρέφει στον εαυτό μου)
Η απάντηση σε αυτό, υπάρχει στο FAQ του sendmail όπως φαίνεται παρακάτω:
[.programlisting]
....
Λαμβάνω αυτά τα μηνύματα λάθους:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Πως μπορώ να λύσω το πρόβλημα;
Έχετε ζητήσει το mail προς ένα τομέα (π.χ. το domain.net) να
προωθείται προς ένα συγκεκριμένο υπολογιστή (στην περίπτωση αυτή
το relay.domain.net) χρησιμοποιώντας μια εγγραφή
MXMX record, αλλά το
μηχάνημα αναμετάδοσης (relay) δεν αναγνωρίζει τον εαυτό του ως
domain.net. Προσθέστε το domain.net στο /etc/mail/local-host-names
[είναι γνωστό ως /etc/sendmail.cw πριν την έκδοση 8.10]
(αν χρησιμοποιείτε το FEATURE(use_cw_file)), διαφορετικά προσθέστε το
Cw domain.net στο /etc/mail/sendmail.cf.
....
Μπορείτε να βρείτε το FAQ του sendmail στη διεύθυνση http://www.sendmail.org/faq/[http://www.sendmail.org/faq/], και συνίσταται να το διαβάσετε αν θέλετε να "πειράξετε" τις ρυθμίσεις του mail σας.
=== Πως μπορώ να εκτελέσω εξυπηρετητή mail σε υπολογιστή που συνδέεται μέσω επιλογικής σύνδεσης PPPPPP;
Θέλετε να συνδέσετε ένα FreeBSD μηχάνημα σε ένα τοπικό δίκτυο (LAN) στο Internet. Το FreeBSD μηχάνημα θα γίνει πύλη ταχυδρομείου για το LAN. Η σύνδεση PPP δεν είναι αποκλειστική.
Υπάρχουν τουλάχιστον δύο τρόποι για να το κάνετε αυτό. Ο ένας είναι με τη χρήση UUCP.
Ένας άλλος τρόπος είναι να βάλετε ένα εξυπηρετητή Internet ο οποίος έχει συνεχή σύνδεση, να σας παρέχει υπηρεσία δευτερεύοντος MX για τον τομέα σας. Για παράδειγμα, αν ο τομέας της εταιρίας σας είναι `example.com` και ο παροχέας σας Internet έχει ορίσει το `example.net` να παρέχει υπηρεσίες δευτερεύοντος MX για τον τομέα σας:
[.programlisting]
....
example.com. MX 10 example.com.
MX 20 example.net.
....
Μόνο ένας υπολογιστής μπορεί να καθοριστεί ως τελικός παραλήπτης (προσθέστε το `Cw example.com` στο αρχείο [.filename]#/etc/mail/sendmail.cf# στο `example.com`).
Όταν το μηχάνημα που στέλνει μέσω του `sendmail` προσπαθεί να παραδώσει το mail θα προσπαθήσει να συνδεθεί στο δικό σας (`example.com`) μέσω της σύνδεσης modem. Το πιο πιθανό είναι ότι δεν θα τα καταφέρει, γιατί δεν θα είστε συνδεμένος εκείνη τη στιγμή. Το sendmail θα το παραδώσει αυτόματα στην υπηρεσία δευτερεύοντος MX, π.χ. τον παροχέα σας Internet (`example.net`). Το δευτερεύον MX θα προσπαθεί περιοδικά να συνδεθεί στο μηχάνημα σας και να παραδώσει το mail στον κύριο εξυπηρετητή MX (`example.com`).
Μπορείτε να χρησιμοποιήσετε κάτι όπως το παρακάτω ως script εισόδου:
[.programlisting]
....
#!/bin/sh
# Put me in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyisp
....
Αν πρόκειται να χρησιμοποιήσετε χωριστό script για την είσοδο κάποιου χρήστη, μπορείτε να χρησιμοποιήσετε αντί για το παραπάνω το `sendmail -qRexample.com` στο script. Αυτό θα εξαναγκάσει την άμεση επεξεργασία όλου του mail στην ουρά για το `example.com`.
Πιο λεπτομερής περιγραφή της κατάστασης φαίνεται παρακάτω:
Μήνυμα από την {freebsd-isp}.
[.programlisting]
....
> παρέχουμε δευτερεύον MX για ένα πελάτη. Ο πελάτης συνδέεται στις
> υπηρεσίες μας αρκετές φορές τη μέρα αυτόματα, για να λαμβάνει τα email του
> στο πρωτεύον του MX (Δεν καλούμε την τοποθεσία του όταν λαμβάνουμε email
> για τον τομέα του). Το sendmail μας στέλνει το mailqueue κάθε 30 λεπτά.
> Τη δεδομένη στιγμή θα πρέπει να μείνει συνδεμένος για 30 λεπτά,
> για να είναι βέβαιος ότι όλο το email του θα έχει
> παραδοθεί στον πρωτεύοντα MX.
>
> Υπάρχει κάποια εντολή που να εξαναγκάσει το sendmail να στείλει
> όλα τα mails άμεσα; Ο χρήστης φυσικά δεν έχει δικαιώματα
> root στο μηχάνημα μας.
Στην ενότητα privacy flags του sendmail.cf, υπάρχει ένας
ορισμός Opgoaway,restrictqrun
Αφαιρέστε το restrictqrun για να επιτρέψετε σε μη-root χρήστες να ξεκινήσουν
την επεξεργασία της ουράς.
Μπορεί επίσης να θέλετε να αναδιατάξετε τα MX. Είμαστε το 1ο MX για αυτού
του είδους τους πελάτες, και έχουμε ορίσει:
# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue
Με τον τρόπο αυτό, ένα απομακρυσμένο site θα παραδίδει απευθείας σε σας,
χωρίς να προσπαθεί τη σύνδεση με το χρήστη. Έπειτα τα στέλνετε στον
πελάτη σας. Αυτό λειτουργεί μόνο για μηχανήματα, και έτσι
χρειάζεται να βάλετε τον πελάτη σας να ονομάσει το μηχάνημα του mail
customer.com και επίσης
hostname.customer.com στο DNS. Απλώς προσθέστε μια εγγραφή
τύπου A στο DNS για το customer.com.
....
=== Γιατί λαμβάνω συνέχεια μηνύματα λάθους Relaying Denied όταν στέλνω mail από άλλους υπολογιστές;
Στις προεπιλεγμένες εγκαταστάσεις του FreeBSD, το sendmail είναι ρυθμισμένο να στέλνει mail μόνο από τον υπολογιστή στον οποίο εκτελείται. Για παράδειγμα, αν υπάρχει διαθέσιμος διακομιστής POP, οι χρήστες θα μπορούν να ελέγχουν το mail τους από το σχολείο, το γραφείο, ή άλλη απομακρυσμένη τοποθεσία, αλλά θα εξακολουθούν να μην μπορούν να στείλουν προς εξωτερικές διευθύνσεις. Τυπικά, λίγο μετά από μια απόπειρα αποστολής, θα σταλεί ένα email από τον MAILER-DAEMON με το μήνυμα λάθους `5.7 Relaying Denied`.
Υπάρχουν διάφοροι τρόποι για να ξεπεράσετε το πρόβλημα. Ο πλέον απλός είναι να βάλετε τη διεύθυνση του ISP σας σε ένα αρχείο relay-domains, [.filename]#/etc/mail/relay-domains#. Ένας γρήγορος τρόπος για να το κάνετε αυτό είναι:
[source,shell]
....
# echo "your.isp.example.com" > /etc/mail/relay-domains
....
Αφού δημιουργήσετε ή επεξεργαστείτε αυτό το αρχείο, θα πρέπει να επανεκκινήσετε το sendmail. Αυτό δουλεύει μια χαρά αν είστε διαχειριστής εξυπηρετητή και δεν επιθυμείτε να στέλνετε mail τοπικά, ή αν θέλετε να χρησιμοποιήσετε ένα σύστημα τύπου point και click σε ένα άλλο μηχάνημα ή ακόμα και σε άλλο ISP. Είναι επίσης πολύ χρήσιμο αν έχετε ρυθμίσει μόνο ένα ή δύο λογαριασμούς mail. Αν θέλετε να προσθέσετε μεγαλύτερο αριθμό διευθύνσεων, μπορείτε να ανοίξετε αυτό το αρχείο με τον επιθυμητό συντάκτη κειμένου, και να προσθέσετε όλους τους τομείς, ένα σε κάθε γραμμή:
[.programlisting]
....
your.isp.example.com
other.isp.example.net
users-isp.example.org
www.example.org
....
Τώρα, οποιαδήποτε αποστολή mail από το σύστημα σας από οποιοδήποτε υπολογιστή αυτής της λίστας (με την προϋπόθεσή ο χρήστης να έχει λογαριασμό στο σύστημα σας), θα είναι επιτυχής. Πρόκειται για ένα πολύ καλό τρόπο να επιτρέψετε στους χρήστες να στέλνουν mail από το σύστημα σας μέσω απομακρυσμένης σύνδεσης, χωρίς να επιτρέπετε σε άλλους να στέλνουν SPAM μέσω του συστήματος σας.
[[mail-advanced]]
== Προχωρημένα Θέματα
Η ακόλουθη ενότητα καλύπτει πιο προχωρημένα θέματα, όπως τη ρύθμιση του mail και ρυθμίσεις για ένα ολόκληρο τομέα.
[[mail-config]]
=== Βασικές Ρυθμίσεις
Χωρίς να χρειαστεί να κάνετε καμιά ρύθμιση, θα μπορείτε να στείλετε mail προς εξωτερικούς υπολογιστές, αρκεί να έχετε ρυθμίσει το [.filename]#/etc/resolv.conf# ή να εκτελείτε το δικό σας εξυπηρετητή DNS. Αν θέλετε να παραλαμβάνετε mail για τον υπολογιστή σας στο δικό σας sendmail MTA, υπάρχουν δύο μέθοδοι:
* Μπορείτε να έχετε δικό σας τομέα και δικό σας εξυπηρετητή DNS για τον τομέα σας. Για παράδειγμα, `FreeBSD.org`
* Να παραλαμβάνετε mail απευθείας στο μηχάνημα σας. Αυτό γίνεται αν το mail παραδίδεται απευθείας στον υπολογιστή σας, χρησιμοποιώντας τον όνομα του (πρέπει να βρίσκεται στο DNS). Για παράδειγμα, `example.FreeBSD.org`.
Όποια επιλογή από τις παραπάνω και να κάνατε, για να είναι δυνατή η παραλαβή mail απευθείας στον υπολογιστή σας, θα πρέπει να έχετε μόνιμη στατική διεύθυνση IP (όχι δυναμική, όπως είναι οι περισσότερες επιλογικές συνδέσεις PPP). Αν βρίσκεστε πίσω από κάποιο firewall, θα πρέπει να επιτρέπει τη διακίνηση SMTP προς εσάς. Αν θέλετε να λαμβάνετε mail απευθείας στον υπολογιστή σας, θα πρέπει να εξασφαλίσετε _ένα_ από τα παρακάτω:
* Να βεβαιωθείτε ότι η εγγραφή MX (με το χαμηλότερο αριθμό) στο DNS σας, δείχνει προς τη διεύθυνση IP του μηχανήματος σας.
* Να βεβαιωθείτε ότι δεν υπάρχει καμιά εγγραφή MX στο DNS για τον υπολογιστή σας.
Όποιο από τα παραπάνω και αν κάνετε, θα μπορείτε να λαμβάνετε mail απευθείας στον υπολογιστή σας.
Δοκιμάστε αυτό:
[source,shell]
....
# hostname
example.FreeBSD.org
# host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
....
Αν βλέπετε το παραπάνω, το mail που κατευθύνεται απευθείας στο mailto:yourlogin@example.FreeBSD.org[yourlogin@example.FreeBSD.org] θα πρέπει να λαμβάνεται χωρίς προβλήματα (θεωρώντας ότι το sendmail εκτελείτε σωστά στον υπολογιστή `example.FreeBSD.org`).
Αν αντί για αυτό δείτε κάτι σαν το παρακάτω:
[source,shell]
....
# host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org
....
Όλο το mail που κατευθύνεται προς τον υπολογιστή σας (`example.FreeBSD.org`) θα καταλήξει να συλλέγεται στο `hub` με το ίδιο όνομα χρήστη, αντί να σταλεί απευθείας στο μηχάνημα σας.
Τις παραπάνω πληροφορίες, τις χειρίζεται ο δικός σας εξυπηρετητής DNS. Η εγγραφή DNS που περιέχει τις πληροφορίες δρομολόγησης για το mail, είναι η __M__ail e__X__change. Αν δεν υπάρχει εγγραφή MX, το mail θα παραδίδεται απευθείας στον υπολογιστή μέσω της IP διεύθυνσης του.
Η καταχώριση MX για τον `freefall.FreeBSD.org` έμοιαζε κάποια στιγμή με την παρακάτω:
[.programlisting]
....
freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.com
....
Όπως μπορείτε να δείτε, ο `freefall` είχε πολλές καταχωρήσεις MX. Η καταχώρηση με τον μικρότερο αριθμό, είναι ο υπολογιστής που λαμβάνει το mail απευθείας, αν είναι διαθέσιμος. Αν για κάποιο λόγο δεν είναι προσβάσιμος, οι άλλοι (που ορισμένες φορές καλούνται "backup MXes") δέχονται τα μηνύματα προσωρινά και τα μεταβιβάζουν σε κάποιο υπολογιστή με χαμηλότερη αρίθμηση, μόλις γίνει διαθέσιμος. Τελικά τα μηνύματα καταλήγουν στον υπολογιστή με το μικρότερο αριθμό.
Οι εναλλακτικές τοποθεσίες MX, θα πρέπει να χρησιμοποιούν διαφορετικές γραμμές για τη σύνδεση τους με το Internet. Αυτή είναι η καλύτερη λύση. Ο παροχέας σας ή κάποιο άλλο φιλικό site, δεν θα έχουν κανένα πρόβλημα να σας παρέχουν αυτή την υπηρεσία.
[[mail-domain]]
=== Mail για τον Τομέα Σας
Για να δημιουργήσετε ένα "mailhost" (δηλ. ένα εξυπηρετητή mail) θα πρέπει οποιοδήποτε mail στέλνεται προς κάποιο σταθμό εργασίας, να λαμβάνεται σε αυτόν. Βασικά θα θέλετε να "διεκδικείτε" οποιοδήποτε mail που κατευθύνεται προς οποιοδήποτε όνομα μηχανήματος του τομέα σας (στην περίπτωση μας το `*.FreeBSD.org`) και να το ανακατευθύνετε προς τον εξυπηρετητή mail, ώστε οι χρήστες σας να μπορούν να λάβουν το mail τους από τον κεντρικό εξυπηρετητή.
Για ευκολία, θα πρέπει να έχετε ένα λογαριασμό χρήστη με το ίδιο _όνομα χρήστη_ και στα δύο μηχανήματα. Χρησιμοποιήστε για το σκοπό αυτό την εντολή man:adduser[8].
Ο mailhost που θα χρησιμοποιήσετε, πρέπει να είναι το καθορισμένο μηχάνημα για την ανταλλαγή μηνυμάτων για κάθε σταθμό εργασίας του δικτύου. Αυτό γίνεται στις ρυθμίσεις DNS με τον ακόλουθο τρόπο:
[.programlisting]
....
example.FreeBSD.org A 204.216.27.XX ; Workstation
MX 10 hub.FreeBSD.org ; Mailhost
....
Με τον τρόπο αυτό, το mail που κατευθύνεται προς κάποιο σταθμό εργασίας θα ανακατευθυνθεί προς το mailhost, άσχετα με το που δείχνει η εγγραφή τύπου Α. Το mail στέλνεται προς τον υπολογιστή MX.
Δεν μπορείτε να κάνετε το παραπάνω, αν δεν εκτελείτε το δικό σας εξυπηρετητή DNS. Αν αυτό δεν συμβαίνει, και δεν μπορείτε να το αλλάξετε, συνεννοηθείτε με τον παροχέα σας (ISP) ή με όποιον σας παρέχει υπηρεσίες DNS.
Αν παρέχετε υπηρεσίες εικονικού ταχυδρομείου, οι παρακάτω πληροφορίες θα σας φανούν χρήσιμες. Για το παράδειγμα μας, θα υποθέσουμε ότι έχετε ένα πελάτη με το δικό του τομέα, στην περίπτωση μας το `customer1.org`, και θέλετε όλο το mail για το `customer1.org` να στέλνεται στο δικό σας mailhost, `mail.myhost.com`. Η καταχώριση σας στο DNS θα μοιάζει με την παρακάτω:
[.programlisting]
....
customer1.org MX 10 mail.myhost.com
....
Σημειώστε ότι _δεν χρειάζεστε_ εγγραφή τύπου Α για το `customer1.org` αν θέλετε απλώς να χειρίζεστε email για αυτό τον τομέα.
[NOTE]
====
Να έχετε υπόψη σας ότι δεν θα μπορείτε να κάνετε ping το `customer1.org` αν δεν υπάρχει για αυτό εγγραφή τύπου Α.
====
Το τελευταίο πράγμα που πρέπει να κάνετε, είναι να ορίσετε στο sendmail που εκτελείται στο δικό σας mailhost, για ποιους τομείς ή / και μηχανήματα θα δέχεται mail. Υπάρχουν μερικοί διαφορετικοί τρόποι για να γίνει αυτό. Μπορείτε να χρησιμοποιήσετε έναν από τους παρακάτω:
* Προσθέστε τα μηχανήματα στο αρχείο [.filename]#/etc/mail/local-host-names# αν χρησιμοποιείτε τη δυνατότητα `FEATURE(use_cw_file)`. Αν χρησιμοποιείτε κάποια έκδοση του sendmail πριν την 8.10, το αρχείο είναι το [.filename]#/etc/sendmail.cw#.
* Προσθέστε μια γραμμή `Cwyour.host.com` στο αρχείο σας [.filename]#/etc/sendmail.cf# ή στο αρχείο [.filename]#/etc/mail/sendmail.cf# αν χρησιμοποιείτε την έκδοση 8.10 του sendmail ή κάποια μεταγενέστερη.
[[SMTP-UUCP]]
== SMTP με UUCP
Η προεπιλεγμένη ρύθμιση του sendmail που έρχεται με το FreeBSD, προορίζεται για δικτυακές τοποθεσίες που είναι απευθείας συνδεδεμένες στο Internet. Σε περιπτώσεις που είναι επιθυμητή η ανταλλαγή email μέσω UUCP, θα πρέπει να χρησιμοποιηθεί διαφορετικό αρχείο ρυθμίσεων για το sendmail.
Η χειροκίνητη ρύθμιση του αρχείου [.filename]#/etc/mail/sendmail.cf# ανήκει στα προχωρημένα θέματα. Η έκδοση 8 του sendmail παράγει αρχεία ρυθμίσεων μέσω του προεπεξεργαστή man:m4[1], όπου οι ρυθμίσεις γίνονται σε ένα ανώτερο επίπεδο αφαίρεσης. Μπορείτε να βρείτε τα αρχεία ρύθμισης τουman:m4[1] στον κατάλογο [.filename]#/usr/shared/sendmail/cf#. Διαβάστε το [.filename]#README# στον κατάλογο [.filename]#cf# για μια βασική εισαγωγή στις ρυθμίσεις του man:m4[1].
Ο καλύτερος τρόπος για την παράδοση mail μέσω του UUCP, είναι με την χρήση της δυνατότητας `mailertable`. Παράγεται με αυτό τον τρόπο μια βάση δεδομένων που μπορεί να χρησιμοποιήσει το sendmail για να πάρει αποφάσεις σχετικά με την δρομολόγηση.
Θα πρέπει αρχικά να δημιουργήσετε το αρχείο [.filename]#.mc#. Θα βρείτε μερικά παραδείγματα στον κατάλογο [.filename]#/usr/shared/sendmail/cf/cf#. Υποθέτοντας ότι έχετε ονομάσει το αρχείο σας [.filename]#foo.mc#, το μόνο που χρειάζεται να κάνετε για να το μετατρέψετε σε ένα έγκυρο αρχείο [.filename]#sendmail.cf# είναι:
[source,shell]
....
# cd /etc/mail
# make foo.cf
# cp foo.cf /etc/mail/sendmail.cf
....
Ένα τυπικό αρχείο [.filename]#.mc# θα δείχνει όπως το παρακάτω:
[.programlisting]
....
VERSIONID(`Your version number') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCP
....
Οι γραμμές που περιέχουν τις δυνατότητες `accept_unresolvable_domains`, `nocanonify`, and `confDONT_PROBE_INTERFACES` θα αποτρέψουν τη χρήση του DNS κατά την παράδοση του mail. Η οδηγία `UUCP_RELAY` απαιτείται για την υποστήριξη παράδοσης μέσω του UUCP. Απλώς τοποθετήστε εκεί ένα όνομα μηχανήματος στο Internet που να μπορεί να χειριστεί διευθύνσεις ψευδο-τομέων .UUCP. Το πιο πιθανό είναι να βάλετε εκεί τον αναμεταδότη (relay) για mail που παρέχει ο ISP σας.
Έχοντας κάνει το παραπάνω, θα χρειαστείτε ένα αρχείο [.filename]#/etc/mail/mailertable#. Αν έχετε μόνο μια σύνδεση με τον έξω κόσμο που χρησιμοποιείται για όλα σας τα mail, το παρακάτω αρχείο είναι επαρκές:
[.programlisting]
....
#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
. uucp-dom:your.uucp.relay
....
Ένα πιο πολύπλοκο παράδειγμα θα μοιάζει με το παρακάτω:
[.programlisting]
....
#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:
....
Οι τρεις πρώτες γραμμές χειρίζονται ειδικές περιπτώσεις, όπου το mail που απευθύνεται σε κάποιο τομέα δεν θα πρέπει να σταλθεί στην προεπιλεγμένη διαδρομή, αλλά αντίθετα σε κάποιο γειτονικό UUCP προκειμένου να "συντομευθεί" το μονοπάτι παράδοσης. Η επόμενη γραμμή χειρίζεται το mail προς τον τοπικό τομέα Ethernet, όπου είναι δυνατή η παράδοση μέσω SMTP. Τέλος, οι γειτονικοί UUCP αναφέρονται με γραφή ψευδο-τομέων UUCP ώστε να επιτρέπεται σε κάποιον `uucp-neighbor !recipient` να παρακάμψει τους προεπιλεγμένους κανόνες. Η τελευταία γραμμή είναι πάντα μια μοναδική τελεία, η οποία ταιριάζει με οτιδήποτε άλλο, με παράδοση UUCP σε ένα γειτονικό UUCP ο οποίος ενεργεί ως γενική πύλη mail προς τον υπόλοιπο κόσμο. Όλα τα ονόματα υπολογιστών που βρίσκονται μετά το `uucp-dom:` θα πρέπει να είναι έγκυροι UUCP γείτονες, όπως μπορείτε να βεβαιώσετε χρησιμοποιώντας το `uuname`.
Σας υπενθυμίζουμε ότι αυτό το αρχείο πρέπει να μετατραπεί σε μια βάση δεδομένων DBM πριν χρησιμοποιηθεί. Μπορείτε να βάλετε τη γραμμή εντολών που απαιτείται για να επιτευχθεί αυτό ως σχόλιο στην αρχή του αρχείου [.filename]#mailertable#. Πρέπει πάντοτε να εκτελείτε αυτή την εντολή κάθε φορά που αλλάζετε το αρχείο [.filename]#mailertable#.
Μια τελευταία υπόδειξη: αν δεν είστε βέβαιοι για το αν θα λειτουργήσει κάποια συγκεκριμένη δρομολόγηση mail, θυμηθείτε την επιλογή `-bt` του sendmail. Αυτή ξεκινάει το sendmail σε _κατάσταση δοκιμής διευθύνσεων_. Γράψτε `3,0`, ακολουθούμενο από τη διεύθυνση που θέλετε να ελέγξετε για δρομολόγηση mail. Η τελευταία γραμμή θα σας πει τον εσωτερικό αντιπρόσωπο mail που χρησιμοποιήθηκε, τη διεύθυνση προορισμού με την οποία κλήθηκε, καθώς και την (πιθανώς μεταφρασμένη) διεύθυνση. Μπορείτε να βγείτε από αυτή την κατάσταση, πληκτρολογώντας kbd:[Ctrl+D].
[source,shell]
....
% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
> ^D
....
[[outgoing-only]]
== Ρύθμιση Εξυπηρετητή Μόνο για Αποστολή
Υπάρχουν πολλές περιπτώσεις, που μπορεί να θέλετε μόνο να στέλνετε mail μέσω κάποιου αναμεταδότη. Μερικά παραδείγματα:
* Ο υπολογιστής σας χρησιμοποιείται ως desktop, αλλά θέλετε να χρησιμοποιήσετε προγράμματα όπως το man:send-pr[1]. Για να γίνει αυτό θα πρέπει να χρησιμοποιήσετε τον αναμεταδότη mail που παρέχει ο ISP σας.
* Ο υπολογιστής σας είναι ένας εξυπηρετητής που δεν χειρίζεται το mail τοπικά, αλλά χρειάζεται να το δώσει εξ' ολοκλήρου σε κάποιο αναμεταδότη για επεξεργασία.
Οποιοδήποτε σχεδόν MTA είναι ικανό να καλύψει τον παραπάνω ρόλο. Δυστυχώς, μπορεί να είναι πολύ δύσκολο να ρυθμίσετε σωστά ένα πλήρες MTA ώστε απλώς να στέλνει το mail προς αναμετάδοση. Προγράμματα όπως το sendmail και το postfix είναι υπερβολικά μεγάλα για αυτή τη δουλειά.
Επιπρόσθετα, αν χρησιμοποιείτε κάποια συνηθισμένη υπηρεσία πρόσβασης στο Internet, η συμφωνία με την εταιρία παροχής μπορεί να σας απαγορεύει να εκτελείτε το δικό σας "εξυπηρετητή mail".
Ο ευκολότερος τρόπος για να εκπληρώσετε αυτές τις ανάγκες είναι να εγκαταστήσετε το port package:mail/ssmtp[] Εκτελέστε τις ακόλουθες εντολές ως `root`:
[source,shell]
....
# cd /usr/ports/mail/ssmtp
# make install replace clean
....
Μετά την εγκατάσταση, το package:mail/ssmtp[] μπορεί να ρυθμιστεί με ένα αρχείο τεσσάρων μόλις γραμμών, το οποίο βρίσκεται στο [.filename]#/usr/local/etc/ssmtp/ssmtp.conf#:
[.programlisting]
....
root=yourrealemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_
....
Βεβαιωθείτε ότι χρησιμοποιείτε την πραγματική διεύθυνση email για τον `root`. Βάλτε τον αναμεταδότη mail του ISP σας στη θέση `mail.example.com` (μερικοί ISP τον ονομάζουν "εξυπηρετητή εξερχόμενου ταχυδρομείου" ή "εξυπηρετητή SMTP").
Βεβαιωθείτε ότι έχετε απενεργοποιήσει πλήρως το sendmail, ακόμα και την υπηρεσία εξερχόμενων μηνυμάτων. Δείτε το <<mail-disable-sendmail>> για λεπτομέρειες.
Υπάρχουν κάποιες ακόμα διαθέσιμες επιλογές στο package:mail/ssmtp[]. Δείτε το παράδειγμα του αρχείου ρυθμίσεων στο [.filename]#/usr/local/etc/ssmtp# ή τη σελίδα manual του ssmtp για περισσότερα παραδείγματα και πληροφορίες.
Ρυθμίζοντας το ssmtp με αυτό τον τρόπο, θα είναι δυνατή η σωστή λειτουργία οποιουδήποτε λογισμικού στον υπολογιστή σας που χρειάζεται να στείλει mail. Επίσης δεν παραβιάζεται με αυτό τον τρόπο η άδεια χρήσης του ISP σας και δεν μπορεί ο υπολογιστής σας να παραβιαστεί και να χρησιμοποιηθεί για την αποστολή ανεπιθύμητων μηνυμάτων (spam).
[[SMTP-dialup]]
== Χρησιμοποιώντας το Mail Μέσω Επιλογικής (Dialup) Σύνδεσης
Αν έχετε στατική διεύθυνση IP, δεν θα χρειαστεί να αλλάξετε καμιά από τις προεπιλογές. Ρυθμίστε το όνομα του υπολογιστή σας ώστε να ταιριάζει με αυτό που σας έχει οριστεί για το Internet, και το sendmail θα κάνει τα υπόλοιπα.
Αν λαμβάνετε δυναμική IP και χρησιμοποιείτε επιλογική PPP σύνδεση με το Internet, πιθανόν διαθέτετε μια θυρίδα ταχυδρομείου (mailbox) στον εξυπηρετητή mail του παροχέα σας. Ας υποθέσουμε ότι ο τομέας του ISP σας είναι `example.net`, και ότι το όνομα χρήστη σας είναι `user`, το μηχάνημα σας λέγεται `bsd.home`, και ο ISP σας, σας έχει πει ότι μπορείτε να χρησιμοποιήσετε το `relay.example.net` ως αναμεταδότη για το mail.
Για να μπορέσετε να λάβετε mail από τη θυρίδα σας, θα χρειαστείτε κάποιο αντιπρόσωπο ανάληψης (retrieval agent). Το βοηθητικό πρόγραμμα fetchmail είναι μια καλή επιλογή, καθώς υποστηρίζει πολλά διαφορετικά πρωτόκολλα. Το πρόγραμμα αυτό είναι διαθέσιμο ως πακέτο ή από την Συλλογή των Ports (package:mail/fetchmail[]). Συνήθως, ο ISP σας θα παρέχει την υπηρεσία POP. Αν χρησιμοποιείτε PPP χρήστη, μπορείτε να κατεβάσετε αυτόματα το mail σας μετά την αποκατάσταση της σύνδεσης σας, χρησιμοποιώντας την ακόλουθη καταχώριση στο [.filename]#/etc/ppp/ppp.linkup#:
[.programlisting]
....
MYADDR:
!bg su user -c fetchmail
....
Αν χρησιμοποιείτε το sendmail (όπως φαίνεται παρακάτω) για να παραδώσετε mail σε μη-τοπικούς λογαριασμούς, πιθανόν να θέλετε το sendmail να επεξεργάζεται την ουρά του mail αμέσως μετά την αποκατάσταση της σύνδεσης. Για να το κάνετε αυτό, βάλτε την παρακάτω εντολή αμέσως μετά την εντολή `fetchmail` στο αρχείο [.filename]#/etc/ppp/ppp.linkup#:
[.programlisting]
....
!bg su user -c "sendmail -q"
....
Ας υποθέσουμε ότι υπάρχει ένας λογαριασμός για τον `user` στον `bsd.home`. Στον προσωπικό κατάλογο του `user` στο `bsd.home`, δημιουργήστε ένα αρχείο [.filename]#.fetchmailrc#:
[.programlisting]
....
poll example.net protocol pop3 fetchall pass MySecret
....
Το αρχείο αυτό δεν θα πρέπει να είναι αναγνώσιμο από κανένα, εκτός από τον `user`, καθώς περιέχει τον κωδικό `MySecret`.
Για να μπορείτε να στείλετε mail με τη σωστή επικεφαλίδα `from:`, θα πρέπει να ρυθμίσετε το sendmail να χρησιμοποιεί το mailto:user@example.net[user@example.net] αντί για το mailto:user@bsd.home[user@bsd.home]. Ίσως επίσης να θέλετε να ρυθμίσετε το sendmail να στέλνει όλο το mail μέσω του `relay.example.net`, ώστε η μετάδοση του mail να είναι ταχύτερη.
Το ακόλουθο αρχείο [.filename]#.mc# θα πρέπει να είναι επαρκές:
[.programlisting]
....
VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnl
....
Διαβάστε την προηγούμενη ενότητα για λεπτομέρειες σχετικά με την μετατροπή αυτού του αρχείου [.filename]#.mc# σε ένα αρχείο [.filename]#sendmail.cf#. Επίσης, μη ξεχάσετε να επανεκκινήσετε το sendmail μετά την ενημέρωση του [.filename]#sendmail.cf#.
[[SMTP-Auth]]
== Πιστοποίηση Αυθεντικότητας στο SMTP
Η χρήση SMTP με πιστοποίηση αυθεντικότητας στον εξυπηρετητή ταχυδρομείου σας, μπορεί να σας προσφέρει μια σειρά από οφέλη. Μπορεί να προσθέσει ένα ακόμα επίπεδο ασφάλειας στο sendmail, ενώ έχει και το πλεονέκτημα ότι δίνει τη δυνατότητα στους χρήστες φορητών υπολογιστών (που συχνά συνδέονται μέσω διαφορετικών δικτύων) να χρησιμοποιούν τον ίδιο εξυπηρετητή ταχυδρομείου χωρίς την ανάγκη επαναρύθμισης κάθε φορά του προγράμματος αποστολής / λήψης ταχυδρομείου.
[.procedure]
. Εγκαταστήστε το package:security/cyrus-sasl2[] από τη Συλλογή των Ports. Το port αυτό υποστηρίζει μια σειρά από επιλογές που μπορείτε να θέσετε κατά την μεταγλώττιση. Για να μπορέσετε να χρησιμοποιήσετε την μέθοδο αυθεντικοποίησης στο SMTP που συζητάμε εδώ, βεβαιωθείτε ότι είναι ενεργοποιημένη η επιλογή `LOGIN`.
. Μετά την εγκατάσταση του package:security/cyrus-sasl2[], τροποποιήστε το αρχείο [.filename]#/usr/local/lib/sasl2/Sendmail.conf# (ή δημιουργήστε το αν δεν υπάρχει) και προσθέστε την παρακάτω γραμμή:
+
[.programlisting]
....
pwcheck_method: saslauthd
....
. Εγκαταστήστε έπειτα το package:security/cyrus-sasl2-saslauthd[], και προσθέστε στο [.filename]#/etc/rc.conf# την ακόλουθη γραμμή:
+
[.programlisting]
....
saslauthd_enable="YES"
....
+
Τέλος, ξεκινήστε το δαίμονα saslauthd:
+
[source,shell]
....
# /usr/local/etc/rc.d/saslauthd start
....
+
Ο δαίμονας αυτός δρα ως ενδιάμεσος για το sendmail ώστε να γίνεται πιστοποίηση αυθεντικότητας μέσω της βάσης δεδομένων κωδικών [.filename]#passwd# του FreeBSD συστήματος σας. Με αυτό τον τρόπο απαλλάσσεστε από την ανάγκη δημιουργίας νέου σετ από ονόματα χρηστών και κωδικούς για κάθε χρήστη που χρειάζεται να χρησιμοποιήσει πιστοποίηση στο SMTP. Χρησιμοποιείται το ίδιο όνομα και κωδικός, τόσο για είσοδο στο σύστημα, όσο και για το mail.
. Επεξεργαστείτε τώρα το [.filename]#/etc/make.conf# και προσθέστε τις ακόλουθες γραμμές:
+
[.programlisting]
....
SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2
....
+
Οι γραμμές αυτές, παρέχουν στο sendmail τις κατάλληλες ρυθμίσεις ώστε να συνδεθεί σωστά με το package:cyrus-sasl2[] κατά τη διάρκεια της μεταγλώττισης. Βεβαιωθείτε ότι είναι εγκατεστημένο το πακέτο package:cyrus-sasl2[] πριν ξεκινήσετε την επαναμεταγλώττιση του sendmail.
. Επαναμεταγλωττίστε το sendmail εκτελώντας τις παρακάτω εντολές:
+
[source,shell]
....
# cd /usr/src/lib/libsmutil
# make cleandir && make obj && make
# cd /usr/src/lib/libsm
# make cleandir && make obj && make
# cd /usr/src/usr.sbin/sendmail
# make cleandir && make obj && make && make install
....
+
Η μεταγλώττιση του sendmail δεν πρέπει να παρουσιάσει προβλήματα, αν το [.filename]#/usr/src# δεν έχει αλλάξει σε μεγάλο βαθμό και εφόσον υπάρχουν οι κοινόχρηστες βιβλιοθήκες που απαιτούνται.
. Μετά την μεταγλώττιση και επανεγκατάσταση του sendmail, επεξεργαστείτε το αρχείο [.filename]#/etc/mail/freebsd.mc# (ή όποιο αρχείο χρησιμοποιείτε ως [.filename]#.mc#. Πολλοί διαχειριστές επιλέγουν να χρησιμοποιήσουν την έξοδο της εντολής man:hostname[1] ως όνομα για το αρχείο [.filename]#.mc# για να εξασφαλίσουν ότι είναι μοναδικό). Προσθέστε σε αυτό τις ακόλουθες γραμμές:
+
[.programlisting]
....
dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
....
+
Οι επιλογές αυτές ρυθμίζουν τις διαφορετικές μεθόδους που έχει στη διάθεση του το sendmail, προκειμένου να πιστοποιήσει τους χρήστες. Αν θέλετε να χρησιμοποιήσετε κάποια μέθοδο διαφορετική από το pwcheck, δείτε την τεκμηρίωση που περιλαμβάνεται.
. Τέλος, εκτελέστε man:make[1] ενώ βρίσκεστε στον κατάλογο [.filename]#/etc/mail#. Με τον τρόπο αυτό, θα χρησιμοποιηθεί το νέο σας [.filename]#.mc# αρχείο και θα δημιουργηθεί ένα αρχείο [.filename]#.cf# με όνομα [.filename]#freebsd.cf# (ή οτιδήποτε όνομα είχατε δώσει στο αρχείο [.filename]#.mc#). Χρησιμοποιήστε έπειτα την εντολή `make install restart`, η οποία θα αντιγράψει το αρχείο στο [.filename]#sendmail.cf#, και θα επανεκκινήσει σωστά το sendmail. Για περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία, θα πρέπει να διαβάσετε το αρχείο [.filename]#/etc/mail/Makefile#.
Αν όλα πήγαν καλά, θα πρέπει να μπορείτε να δώσετε τα στοιχεία εισόδου σας στο πρόγραμμα που χρησιμοποιείτε για αποστολή και λήψη mail, και να στείλετε ένα δοκιμαστικό μήνυμα. Για να διερευνήσετε περισσότερο τη λειτουργία, θέστε την επιλογή `LogLevel` του sendmail στο 13 και παρακολουθήστε το [.filename]#/var/log/maillog# για τυχόν λάθη.
Για περισσότερες πληροφορίες, παρακαλούμε να δείτε τη σελίδα του sendmail που αφορά την http://www.sendmail.org/~ca/email/auth.html[πιστοποίηση αυθεντικότητας στο SMTP].
[[mail-agents]]
== Προγράμματα Ταχυδρομείου για τον Χρήστη
Ένα πρόγραμμα Αντιπροσώπου Ταχυδρομείου Χρήστη (Mail User Agent, MUA), είναι μια εφαρμογή που χρησιμοποιείται για την αποστολή και λήψη email. Επιπλέον, καθώς το email "εξελίσσεται" και γίνεται πιο πολύπλοκο, τα MUA γίνονται όλο και ισχυρότερα όσο αφορά τον τρόπο που αλληλεπιδρούν με το email. Αυτό δίνει στους χρήστες περισσότερες λειτουργίες και ευελιξία. To FreeBSD περιέχει υποστήριξη για μεγάλο αριθμό από προγράμματα ταχυδρομείου, και όλα μπορούν να εγκατασταθούν πολύ εύκολα μέσω της crossref:ports[ports,Συλλογής των Ports του FreeBSD]. Οι χρήστες μπορούν να επιλέξουν μεταξύ γραφικών προγραμμάτων, όπως το evolution ή το balsa, και προγράμματα κονσόλας όπως τα mutt, alpine ή `mail`, ή ακόμα και τις διεπαφές web που προσφέρονται από μερικούς μεγάλους οργανισμούς.
[[mail-command]]
=== mail
Το man:mail[1] είναι το προεπιλεγμένο πρόγραμμα ταχυδρομείου (MUA) in FreeBSD. Πρόκειται για ένα MUA κονσόλας, το οποίο προσφέρει όλες τις βασικές λειτουργίες που απαιτούνται για την αποστολή και λήψη email σε μορφή κειμένου, αν και έχει περιορισμένες δυνατότητες όσο αφορά συνημμένα αρχεία και υποστηρίζει μόνο τοπικές θυρίδες.
Αν και το `mail` δεν υποστηρίζει εγγενώς τη λήψη email μέσω διακομιστών POP ή IMAP, είναι ωστόσο δυνατόν να κατεβάσετε τα email σε μια τοπική θυρίδα ([.filename]#mbox#) χρησιμοποιώντας κάποια εφαρμογή όπως το fetchmail, το οποίο θα συζητήσουμε αργότερα σε αυτό το κεφάλαιο (<<mail-fetchmail>>).
Για την αποστολή και λήψη email, εκτελέστε την εντολή `mail`:
[source,shell]
....
% mail
....
Τα περιεχόμενα της θυρίδας του χρήστη στον κατάλογο [.filename]#/var/mail# θα διαβαστούν αυτόματα από το πρόγραμμα `mail`. Αν η θυρίδα ταχυδρομείου είναι άδεια, το πρόγραμμα τερματίζεται με το μήνυμα ότι δεν βρέθηκε αλληλογραφία. Μετά την ανάγνωση της θυρίδας, ξεκινά η διεπαφή της εφαρμογής και εμφανίζεται μια λίστα με μηνύματα. Τα μηνύματα αριθμούνται αυτόματα, όπως φαίνεται στο παρακάτω παράδειγμα:
[source,shell]
....
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"
....
Τα μηνύματα μπορούν πλέον να διαβαστούν με την εντολή kbd:[t] της εντολής `mail`, ακολουθούμενη με τον αριθμό του mail που θέλετε να εμφανιστεί. Στο παράδειγμα αυτό θα διαβάσουμε το πρώτο μήνυμα:
[source,shell]
....
& t 1
Message 1:
From root@localhost Mon Mar 8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)
This is a test message, please reply if you receive it.
....
Όπως φαίνεται στο παραπάνω παράδειγμα, η χρήση του πλήκτρου kbd:[t] θα προκαλέσει την εμφάνιση του μηνύματος με πλήρεις επικεφαλίδες. Για να δείτε ξανά τη λίστα με τα μηνύματα, χρησιμοποιήστε το πλήκτρο kbd:[h].
Αν το mail απαιτεί απάντηση, μπορείτε να χρησιμοποιήσετε την εντολή `mail` χρησιμοποιώντας τις ενσωματωμένες εντολές kbd:[R] ή kbd:[r]. Το πλήκτρο kbd:[R] οδηγεί το `mail` να απαντήσει μόνο στον αποστολέα του μηνύματος, ενώ το kbd:[r] απαντάει όχι μόνο στον αποστολέα, αλλά σε όλους τους παραλήπτες του μηνύματος. Μπορείτε επίσης να προσθέσετε μετά από τις εντολές αυτές, τον αριθμό του μηνύματος στο οποίο θέλετε να απαντήσετε. Αφού το κάνετε αυτό, θα πρέπει να γράψετε την απάντηση σας και να σημειώσετε το τέλος της γράφοντας μια μόνο kbd:[.] σε μια νέα γραμμή. Μπορείτε να δείτε ένα παράδειγμα παρακάτω:
[source,shell]
....
& R 1
To: root@localhost
Subject: Re: test
Thank you, I did get your email.
.
EOT
....
Για να στείλετε νέο mail, θα πρέπει να χρησιμοποιήσετε το πλήκτρο kbd:[m], ακολουθούμενο από την διεύθυνση του παραλήπτη. Μπορείτε να δώσετε πολλαπλούς παραλήπτες, χωρίζοντας μεταξύ τους τις διευθύνσεις με kbd:[,]. Μπορείτε έπειτα να βάλετε το θέμα του μηνύματος και να συνεχίσετε με το περιεχόμενο. Το τέλος του μηνύματος καθορίζεται γράφοντας μια μοναδική kbd:[.] σε μια νέα γραμμή.
[source,shell]
....
& mail root@localhost
Subject: I mastered mail
Now I can send and receive email using mail ... :)
.
EOT
....
Όσο βρίσκεστε μέσα στην εντολή `mail`, μπορείτε να χρησιμοποιήσετε το πλήκτρο kbd:[?] για την εμφάνιση βοήθειας οποιαδήποτε στιγμή. Μπορείτε επίσης να συμβουλευτείτε την σελίδα manual του man:mail[1] για περισσότερες πληροφορίες σχετικά με την εντολή `mail`.
[NOTE]
====
Όπως αναφέραμε προηγουμένως, η εντολή man:mail[1] δεν σχεδιάστηκε αρχικά για να χειρίζεται συνημμένα, και για το λόγο αυτό οι δυνατότητες τις στο συγκεκριμένο θέμα είναι μικρές. Νεώτερα MUA, όπως το mutt, χειρίζονται τα συνημμένα με πολύ πιο έξυπνο τρόπο. Αλλά αν παρ' όλα αυτά επιθυμείτε να χρησιμοποιήσετε την εντολή `mail`, μάλλον θα σας φανεί χρήσιμο το port package:converters/mpack[].
====
[[mutt-command]]
=== mutt
Το mutt είναι ένα μικρό, αλλά πολύ ισχυρό πρόγραμμα αποστολής και λήψης mail, με εξαιρετικά χαρακτηριστικά τα οποία περιλαμβάνουν:
* Την ικανότητα να δείχνει μηνύματα με την μορφή συζητήσεων
* Υποστήριξη PGP για ψηφιακή υπογραφή και κρυπτογράφηση email
* Υποστήριξη MIME
* Υποστήριξη Maildir
* Εξαιρετικές δυνατότητες παραμετροποίησης
Όλες αυτές οι δυνατότητες, κάνουν το mutt ένα από τα πιο εξελιγμένα διαθέσιμα προγράμματα ταχυδρομείου. Δείτε την τοποθεσία http://www.mutt.org[http://www.mutt.org] για περισσότερες πληροφορίες σχετικά με το mutt.
Μπορείτε να εγκαταστήσετε τη σταθερή έκδοση του mutt μέσω του port package:mail/mutt[], ενώ και η τρέχουσα υπό εξέλιξη έκδοση είναι διαθέσιμη μέσω του port package:mail/mutt-devel[]. Μετά την εγκατάσταση του port, μπορείτε να εκτελέσετε το mutt, με την ακόλουθη εντολή:
[source,shell]
....
% mutt
....
Το mutt θα διαβάσει αυτόματα τα περιεχόμενα της θυρίδας ταχυδρομείου χρήστη στον κατάλογο [.filename]#/var/mail#, και θα δείξει τα περιεχόμενα του αν αυτό είναι εφικτό. Αν δεν υπάρχουν mails στη θυρίδα του χρήστη, το mutt θα εισέλθει σε κατάσταση αναμονής εντολών. Το παρακάτω παράδειγμα, δείχνει το mutt να απεικονίζει μια λίστα μηνυμάτων:
image::mutt1.png[]
Για να διαβάσετε ένα email, επιλέξτε το χρησιμοποιώντας τα βελάκια, και πιέστε kbd:[Enter]. Μπορείτε να δείτε ένα παράδειγμα απεικόνισης mail από το mutt παρακάτω:
image::mutt2.png[]
Όπως και το man:mail[1], το mutt, σας επιτρέπει να απαντήσετε τόσο στον αποστολέα του μηνύματος, όσο και σε όλους τους παραλήπτες. Για να απαντήσετε μόνο στον αποστολέα του email, χρησιμοποιήστε το πλήκτρο kbd:[r]. Για να απαντήσετε στην ομάδα χρηστών η οποία περιλαμβάνει τόσο τον αρχικό αποστολέα, όσο και τους υπόλοιπους παραλήπτες του μηνύματος, χρησιμοποιήστε το πλήκτρο kbd:[g].
[NOTE]
====
Το mutt χρησιμοποιεί το man:vi[1] ως συντάκτη κειμένου για δημιουργία και απάντηση σε email. Η ρύθμιση αυτή μπορεί να αλλαχθεί από το χρήστη δημιουργώντας ή τροποποιώντας το αρχείο [.filename]#.muttrc# στον προσωπικό του κατάλογο, και θέτοντας τη μεταβλητή `editor`, ή αλλάζοντας την μεταβλητή περιβάλλοντος `EDITOR`. Δείτε την τοποθεσία http://www.mutt.org/[http://www.mutt.org/] για περισσότερες πληροφορίες σχετικά με τη ρύθμιση του mutt.
====
Για να συντάξετε ένα νέο μήνυμα, πιέστε το πλήκτρο kbd:[m]. Αφού γράψετε το κατάλληλο θέμα, το mutt θα ξεκινήσει το man:vi[1] επιτρέποντας σας να γράψετε το mail. Μόλις ολοκληρώσετε, αποθηκεύστε και τερματίστε το `vi` και το mutt θα συνεχίσει, δείχνοντας σας μια οθόνη περίληψης του mail το οποίο πρόκειται να σταλεί. Για να στείλετε το mail, πιέστε το πλήκτρο kbd:[y]. Μπορείτε να δείτε παρακάτω ένα παράδειγμα της οθόνης περίληψης:
image::mutt3.png[]
Το mutt περιέχει επίσης εκτεταμένη βοήθεια, στην οποία μπορείτε να έχετε πρόσβαση σχεδόν από κάθε σημείο του μενού, πιέζοντας το πλήκτρο kbd:[?]. Η γραμμή στην κορυφή της οθόνης δείχνει επίσης τις συντομεύσεις πληκτρολογίου, όπου υπάρχουν.
[[alpine-command]]
=== alpine
Το alpine απευθύνεται κυρίως στον αρχάριο χρήστη, αλλά περιλαμβάνει επίσης κάποια προχωρημένα χαρακτηριστικά.
[WARNING]
====
Το alpine έχει ιστορικό προβλημάτων ασφαλείας. Στο παρελθόν, ανακαλύφθηκαν προβλήματα που επέτρεπαν σε απομακρυσμένους εισβολείς να εκτελέσουν το δικό τους κώδικα στο τοπικό σύστημα, στέλνοντας απλώς ένα ειδικά διαμορφωμένο email. Όλα αυτά τα _γνωστά_ προβλήματα έχουν πλέον διορθωθεί, αλλά ο κώδικας του alpine είναι γραμμένος με ιδιαίτερα ανασφαλή τρόπο, και ο Υπεύθυνος Ασφάλειας του FreeBSD, πιστεύει ότι είναι αρκετά πιθανόν να υπάρχουν και άλλα κενά ασφαλείας που δεν έχουν ανακαλυφθεί ακόμα. Εγκαταστήστε το alpine με δική σας ευθύνη.
====
Η τρέχουσα έκδοση του alpine μπορεί να εγκατασταθεί χρησιμοποιώντας το port package:mail/alpine[]. Μετά την εγκατάσταση του port το alpine μπορεί να ξεκινήσει χρησιμοποιώντας την παρακάτω εντολή:
[source,shell]
....
% alpine
....
Την πρώτη φορά που θα εκτελέσετε το alpine θα σας δείξει μια αρχική σελίδα χαιρετισμού, με μια σύντομη εισαγωγή, καθώς και μια αίτηση από την ομάδα ανάπτυξης του alpine να τους στείλετε ένα ανώνυμο mail το οποίο θα τους βοηθήσει να έχουν μια ιδέα για το πόσοι χρήστες χρησιμοποιούν το λογισμικό. Για να στείλετε αυτό το ανώνυμο μήνυμα, πιέστε kbd:[Enter], ή εναλλακτικά πιέστε kbd:[E] για να κλείσετε την οθόνη χαιρετισμού χωρίς να στείλετε το ανώνυμο μήνυμα. Ένα παράδειγμα της σελίδας χαιρετισμού φαίνεται παρακάτω:
image::pine1.png[]
Θα εμφανιστεί κατόπιν το κύριο μενού, στο οποίο μπορείτε να μετακινηθείτε εύκολα χρησιμοποιώντας τα βελάκια. Αυτό το κύριο μενού παρέχει πλήκτρα συντόμευσης για δημιουργία νέων mail, για ανίχνευση στους καταλόγους mail, και ακόμα για διαχείριση καταχωρήσεων στο βιβλίο διευθύνσεων. Κάτω από το κύριο μενού, εμφανίζονται συντομεύσεις πληκτρολογίου σχετικές με την εργασία που γίνεται τη συγκεκριμένη στιγμή.
Ο προεπιλεγμένος κατάλογος που ανοίγει το alpine είναι το [.filename]#inbox#. Για να δείτε το ευρετήριο των μηνυμάτων, πιέστε το kbd:[I], ή επιλέξτε το [.guimenuitem]#MESSAGE INDEX# όπως φαίνεται παρακάτω:
image::pine2.png[]
Το ευρετήριο μηνυμάτων δείχνει μηνύματα από τον τρέχοντα κατάλογο, και μπορείτε να μετακινηθείτε σε αυτό με τα βελάκια. Μπορείτε να διαβάσετε το επιλεγμένο μήνυμα, πιέζοντας το πλήκτρο kbd:[Enter].
image::pine3.png[]
Στην εικόνα που φαίνεται παρακάτω, το alpine απεικονίζει ένα υπόδειγμα μηνύματος. Στο κάτω μέρος της οθόνης φαίνονται σχετικές συντομεύσεις πληκτρολογίου. Ένα παράδειγμα τέτοιας συντόμευσης, είναι το πλήκτρο kbd:[r] το οποίο λέει στο MUA να δημιουργήσει απάντηση προς το τρέχον μήνυμα που απεικονίζεται.
image::pine4.png[]
Η απάντηση σε ένα mail μέσω του alpine γίνεται με τη χρήση του συντάκτη κειμένου pico, ο οποίος εγκαθίσταται από προεπιλογή μαζί με το alpine. Το pico διευκολύνει τη μετακίνηση μέσα στο μήνυμα, και είναι κάπως πιο εύκολο για τους αρχάριους χρήστες σε σχέση με το man:vi[1] ή το man:mail[1]. Μόλις ολοκληρώσετε την απάντηση, μπορείτε να στείλετε το μήνυμα πιέζοντας τα πλήκτρα kbd:[Ctrl+X]. Το alpine θα σας ζητήσει να το επιβεβαιώσετε.
image::pine5.png[]
Μπορείτε να προσαρμόσετε το alpine με τη χρήση της επιλογής [.guimenuitem]#SETUP# από το κύριο μενού. Συμβουλευθείτε την τοποθεσία http://www.washington.edu/alpine/[http://www.washington.edu/alpine/] για περισσότερες πληροφορίες.
[[mail-fetchmail]]
== Χρησιμοποιώντας το fetchmail
Το fetchmail είναι ένας πλήρης πελάτης για IMAP και POP, ο οποίος επιτρέπει στους χρήστες να κατεβάζουν αυτόματα mail από απομακρυσμένους εξυπηρετητές IMAP και POP και να το αποθηκεύουν σε τοπικές θυρίδες, από όπου μπορεί έπειτα να υπάρχει πιο εύκολη πρόσβαση. Το fetchmail μπορεί να εγκατασταθεί χρησιμοποιώντας το port package:mail/fetchmail[] και παρέχει διάφορα χαρακτηριστικά, μερικά από τα οποία περιλαμβάνουν:
* Υποστήριξη των πρωτοκόλλων POP3, APOP, KPOP, IMAP, ETRN και ODMR.
* Δυνατότητα προώθησης email μέσω SMTP, το οποίο επιτρέπει τη φυσιολογική λειτουργία του φιλτραρίσματος, της προώθησης, και των παρωνυμίων (aliases).
* Μπορεί να λειτουργήσει σε κατάσταση δαίμονα, ώστε να ελέγχει περιοδικά για νέα μηνύματα.
* Μπορεί να ανακτά πολλαπλές θυρίδες και να τις προωθεί, ανάλογα με τις ρυθμίσεις του, σε διαφορετικούς τοπικούς χρήστες.
Αν και είναι έξω από τους σκοπούς αυτού του κειμένου να εξηγήσει όλες τις δυνατότητες του fetchmail, θα αναφερθούμε σε κάποιες βασικές λειτουργίες. Το fetchmail χρησιμοποιεί ένα αρχείο ρυθμίσεων γνωστό ως [.filename]#.fetchmailrc#, για να λειτουργήσει σωστά. Το αρχείο αυτό περιέχει τις πληροφορίες του εξυπηρετητή αλλά και τα στοιχεία εισόδου του χρήστη. Λόγω των ευαίσθητων πληροφοριών του αρχείου αυτού, σας συμβουλεύουμε να χρησιμοποιήσετε την παρακάτω εντολή ώστε η ανάγνωση του να επιτρέπεται μόνο από τον ιδιοκτήτη του:
[source,shell]
....
% chmod 600 .fetchmailrc
....
Το [.filename]#.fetchmailrc# που φαίνεται παρακάτω είναι ένα παράδειγμα με το οποίο μπορείτε να κατεβάσετε τη θυρίδα ενός χρήστη μέσω του πρωτοκόλλου POP. Κατευθύνει το fetchmail να συνδεθεί στο `example.com` χρησιμοποιώντας όνομα χρήστη `joesoap` και κωδικό `XXX`. Το παράδειγμα υποθέτει ότι ο χρήστης `joesoap` είναι επίσης και χρήστης του τοπικού συστήματος.
[.programlisting]
....
poll example.com protocol pop3 username "joesoap" password "XXX"
....
Το επόμενο παράδειγμα, δείχνει σύνδεση σε πολλαπλούς POP και IMAP εξυπηρετητές, και ανακατευθύνει σε διαφορετικούς τοπικούς χρήστες όπου είναι απαραίτητο:
[.programlisting]
....
poll example.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll example2.net proto imap:
user "john", with password "XXXXX", is "myth" here;
....
Το βοηθητικό πρόγραμμα fetchmail μπορεί να λειτουργήσει σε κατάσταση δαίμονα, αν το εκτελέσετε με την επιλογή `-d`, ακολουθούμενη από ένα διάστημα (σε δευτερόλεπτα) το οποίο θα χρησιμοποιηθεί για να ερωτώνται οι εξυπηρετητές που είναι καταχωρημένοι στο αρχείο [.filename]#.fetchmailrc#. Το παρακάτω παράδειγμα οδηγεί το fetchmail να ανιχνεύει για νέο mail κάθε 600 δευτερόλεπτα:
[source,shell]
....
% fetchmail -d 600
....
Μπορείτε να βρείτε περισσότερες πληροφορίες για το fetchmail στην τοποθεσία http://fetchmail.berlios.de/[http://fetchmail.berlios.de/].
[[mail-procmail]]
== Χρησιμοποιώντας το procmail
Το βοηθητικό πρόγραμμα procmail είναι μια απίστευτα ισχυρή εφαρμογή που μπορεί να χρησιμοποιηθεί για το φιλτράρισμα του εισερχόμενου mail. Επιτρέπει στους χρήστες να ορίζουν "κανόνες" οι οποίοι μπορεί να ταιριάζουν σε εισερχόμενα mail και να εκτελούν διάφορες λειτουργίες, ή να ανακατευθύνουν το mail σε εναλλακτικές θυρίδες ή / και διευθύνσεις ταχυδρομείου. Το procmail μπορεί να εγκατασταθεί χρησιμοποιώντας το port package:mail/procmail[]. Μετά την εγκατάσταση του, μπορεί να ενσωματωθεί σχεδόν σε οποιοδήποτε MTA. Συμβουλευθείτε την τεκμηρίωση του MTA που χρησιμοποιείτε για περισσότερες πληροφορίες. Εναλλακτικά, μπορείτε να ενσωματώσετε το procmail προσθέτοντας την ακόλουθη γραμμή σε ένα αρχείο [.filename]#.forward# στον κατάλογο του χρήστη, χρησιμοποιώντας τις δυνατότητες του procmail:
[.programlisting]
....
"|exec /usr/local/bin/procmail || exit 75"
....
Στην παρακάτω ενότητα, θα δείξουμε μερικούς από τους βασικούς κανόνες του procmail, καθώς και σύντομες περιγραφές της λειτουργίας τους. Πρέπει να τοποθετήσετε αυτούς (και άλλους) κανόνες σε ένα αρχείο [.filename]#.procmailrc#, το οποίο θα πρέπει να βρίσκεται μέσα στον κατάλογο του χρήστη:
Μπορείτε να βρείτε τους περισσότερους από αυτούς τους κανόνες, στη σελίδα manual του man:procmailex[5].
Προώθηση όλου του email της διεύθυνσης mailto:user@example.com[user@example.com] προς την εξωτερική διεύθυνση mailto:goodmail@example2.com[goodmail@example2.com]:
[.programlisting]
....
:0
* ^From.*user@example.com
! goodmail@example2.com
....
Προώθηση όλων των email που είναι μικρότερα από 1000 bytes προς μια εξωτερική διεύθυνση email mailto:goodmail@example2.com[goodmail@example2.com]:
[.programlisting]
....
:0
* < 1000
! goodmail@example2.com
....
Αποστολή όλου του mail που στάλθηκε προς το mailto:alternate@example.com[alternate@example.com] σε μια θυρίδα που καλείται [.filename]#alternate#:
[.programlisting]
....
:0
* ^TOalternate@example.com
alternate
....
Αποστολή όλου του mail με θέμα "Spam" προς το [.filename]#/dev/null#:
[.programlisting]
....
:0
^Subject:.*Spam
/dev/null
....
Μια χρήσιμη λύση που ξεχωρίζει τα email από τις λίστες ταχυδρομείου `FreeBSD.org` και τοποθετεί το κάθε μήνυμα σε διαφορετική θυρίδα:
[.programlisting]
....
:0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}
....
|