You probably want to avoid tampering with default Python libraries. If you're only concerned with scheduled alerts, then I think you can just do the following in alert_actions.conf:
[email]
mailserver=mail.example.com:587
This doesn't appear to affect emails sent via the search pipeline (i.e., using | sendemail) -- for that you would still have to call your search like this:
search xxx | sendemail to=myaddress@example.com server=mail.example.com:587
But the big advantage is you don't have to do anything "unusual".
If you really want to change the overall default, you'll most likely have to modify the sendemail.py in the search app, which has a hard-coded default of "localhost". Overriding the sendemail script may break things, especially during version upgrades. For example, supporting PDF emails release in 4.1 required changes to that script. You have been warned....
Copy apps/search/bin/sendemail.py to sendemail-local.py
Around line 51, modify the default value of "server" like so:
serverURL = argvals.get("server", "mail.example.com:587")
Edit apps/search/local/commands.conf to activate your new script:
[sendemail]
filename = sendemail-local.py
... View more