Put in remaining pages and wiki contents.
[ikiwiki.git] / docs / handbook / handbook-mail-changingmta.mdwn
1 \r
2 \r
3 ## 20.4 Changing Your Mail Transfer Agent \r
4 \r
5 ***Written by Andrew Boothman. ******Information taken from e-mails written by Gregory Neil Shapiro. ***\r
6 \r
7 As already mentioned, DragonFly comes with  **sendmail**  already installed as your MTA (Mail Transfer Agent). Therefore by default it is in charge of your outgoing and incoming mail.\r
8 \r
9 However, for a variety of reasons, some system administrators want to change their system's MTA. These reasons range from simply wanting to try out another MTA to needing a specific feature or package which relies on another mailer. Fortunately, whatever the reason, DragonFly makes it easy to make the change.\r
10 \r
11 ### 20.4.1 Install a New MTA \r
12 \r
13 You have a wide choice of MTAs available. A good starting point is the [pkgsrc.html pkgsrc® collection]or where you will be able to find many. Of course you are free to use any MTA you want from any location, as long as you can make it run under DragonFly.\r
14 \r
15 Start by installing your new MTA. Once it is installed it gives you a chance to decide if it really fulfills your needs, and also gives you the opportunity to configure your new software before getting it to take over from  **sendmail** . When doing this, you should be sure that installing the new software will not attempt to overwrite system binaries such as `/usr/bin/sendmail`. Otherwise, your new mail software has essentially been put into service before you have configured it.\r
16 \r
17 Please refer to your chosen MTA's documentation for information on how to configure the software you have chosen.\r
18 \r
19 ### 20.4.2 Disable  **sendmail**  \r
20 \r
21 In order to completely disable  **sendmail**  you must use\r
22 \r
23     \r
24     sendmail_enable="NONE"\r
25 \r
26 \r
27 in `/etc/rc.conf.`\r
28 \r
29  **Warning:** If you disable  **sendmail** 's outgoing mail service in this way, it is important that you replace it with a fully working alternative mail delivery system. If you choose not to, system functions such as [periodic(8)](http://leaf.dragonflybsd.org/cgi/web-man?command#periodic&section8) will be unable to deliver their results by e-mail as they would normally expect to. Many parts of your system may expect to have a functional  **sendmail** -compatible system. If applications continue to use  **sendmail** 's binaries to try to send e-mail after you have disabled them, mail could go into an inactive  **sendmail**  queue, and never be delivered.\r
30 \r
31 If you only want to disable  **sendmail** 's incoming mail service, you should set\r
32 \r
33     \r
34     sendmail_enable="NO"\r
35 \r
36 \r
37 in `/etc/rc.conf`. More information on  **sendmail** 's startup options is available from the [rc.sendmail(8)](http://leaf.dragonflybsd.org/cgi/web-man?command#rc.sendmail&section8) manual page.\r
38 \r
39 ### 20.4.3 Running Your New MTA on Boot \r
40 \r
41 You may have a choice of two methods for running your new MTA on boot, again depending on what version of DragonFly you are running.\r
42 \r
43 With later versions of DragonFly, you can use the above method or you can set\r
44 \r
45     \r
46     mta_start_script="filename"\r
47 \r
48 \r
49 in `/etc/rc.conf`, where `***filename***` is the name of some script that you want executed at boot to start your MTA.\r
50 \r
51 ### 20.4.4 Replacing  **sendmail**  as the System's Default Mailer \r
52 \r
53 The program  **sendmail**  is so ubiquitous as standard software on UNIX® systems that some software just assumes it is already installed and configured. For this reason, many alternative MTA's provide their own compatible implementations of the  **sendmail**  command-line interface; this facilitates using them as ***drop-in*** replacements for  **sendmail** .\r
54 \r
55 Therefore, if you are using an alternative mailer, you will need to make sure that software trying to execute standard  **sendmail**  binaries such as `/usr/bin/sendmail` actually executes your chosen mailer instead. Fortunately, DragonFly provides a system called [mailwrapper(8)](http://leaf.dragonflybsd.org/cgi/web-man?command#mailwrapper&section8) that does this job for you.\r
56 \r
57 When  **sendmail**  is operating as installed, you will find something like the following in `/etc/mail/mailer.conf`:\r
58 \r
59     \r
60     sendmail     /usr/libexec/sendmail/sendmail\r
61     send-mail   /usr/libexec/sendmail/sendmail\r
62     mailq               /usr/libexec/sendmail/sendmail\r
63     newaliases  /usr/libexec/sendmail/sendmail\r
64     hoststat    /usr/libexec/sendmail/sendmail\r
65     purgestat   /usr/libexec/sendmail/sendmail\r
66 \r
67 \r
68 This means that when any of these common commands (such as `sendmail` itself) are run, the system actually invokes a copy of mailwrapper named `sendmail`, which checks `mailer.conf` and executes `/usr/libexec/sendmail/sendmail` instead. This system makes it easy to change what binaries are actually executed when these default `sendmail` functions are invoked.\r
69 \r
70 Therefore if you wanted `/usr/local/supermailer/bin/sendmail-compat` to be run instead of  **sendmail** , you could change `/etc/mail/mailer.conf` to read:\r
71 \r
72     \r
73     sendmail     /usr/local/supermailer/bin/sendmail-compat\r
74     send-mail   /usr/local/supermailer/bin/sendmail-compat\r
75     mailq               /usr/local/supermailer/bin/mailq-compat\r
76     newaliases  /usr/local/supermailer/bin/newaliases-compat\r
77     hoststat    /usr/local/supermailer/bin/hoststat-compat\r
78     purgestat   /usr/local/supermailer/bin/purgestat-compat\r
79 \r
80 \r
81 ### 20.4.5 Finishing \r
82 \r
83 Once you have everything configured the way you want it, you should either kill the  **sendmail**  processes that you no longer need and start the processes belonging to your new software, or simply reboot. Rebooting will also give you the opportunity to ensure that you have correctly configured your system to start your new MTA automatically on boot.\r
84 \r
85 \r
86 \r
87 CategoryHandbook\r
88 CategoryHandbook-email\r