Relay email to gmail (msmtp, mailx, sendmail: Difference between revisions

From Alpine Linux
No edit summary
(use cmd, cat, path template)
 
(3 intermediate revisions by 3 users not shown)
Line 3: Line 3:


== Install msmtp ==
== Install msmtp ==
<pre>
{{Cmd|# apk add msmtp}}
sudo apk add msmtp
</pre>


== Configuration ==
== Configuration ==
Create a global configuration, "/etc/msmtprc" with content
Create a global configuration:


<pre>
{{Cat|/etc/msmtprc|# Set default values for all following accounts.
# Set default values for all following accounts.
defaults
defaults
auth          on
auth          on
Line 29: Line 26:
account default : gmail
account default : gmail
aliases        /etc/aliases
aliases        /etc/aliases
</pre>
}}
{{note|Please note I've used the '''syslog on''' to send msmtp log to syslog, yet you can use the '''logfile    <log_file_path>''' if you prefer to log to a file }}
{{note|Please note I've used the '''syslog on''' to send msmtp log to syslog, yet you can use the '''logfile    <log_file_path>''' if you prefer to log to a file }}
{{note|Please note the aliases '''/etc/aliases''', this will help for mail/sendmail to redirect email to local user (like root) to an external email }}
{{note|Please note the aliases {{Path|/etc/aliases}}, this will help for mail/sendmail to redirect email to local user (like root) to an external email }}


== Sendmail alias ==
== Sendmail alias ==
By default alpine comes with busybox sendmail, msmtp can act as a sendmail alternative including syntax and option, there I create a local.d script to overwrite the busybox link to msmtp.
By default alpine comes with busybox sendmail, msmtp can act as a sendmail alternative including syntax and option, there I create a local.d script to overwrite the busybox link to msmtp.


Create a file "/etc/local.d/msmtp-sendmail.start" with below content:
{{Cat|/etc/local.d/msmtp-sendmail.start|#!/bin/sh
<pre>
ln -sf /usr/bin/msmtp /usr/bin/sendmail
#!/bin/sh
ln -sf /usr/bin/msmtp /usr/sbin/sendmail
ln -sf /usr/bin/msmtp /usr/sbin/sendmail
</pre>
}}


Make it executable
Make it executable
<pre>
{{Cmd|# chmod +x /etc/local.d/msmtp-sendmail.start}}
sudo chmod +x /etc/local.d/msmtp-sendmail.start
 
</pre>
and run it first time through
{{Cmd|# /etc/local.d/msmtp-sendmail.start}}


== Mailx and aliases ==
== Mailx and aliases ==
Install mailx for program that uses mail (like apcupsd for monitoring UPS events)
Install mailx for program that uses mail (like apcupsd for monitoring UPS events)
<pre>
{{Cmd|# apk add mailx}}
sudo apk add mailx
</pre>


Create an "/etc/aliases" file with content:
Create an {{Path|/etc/aliases}} file with content:
<pre>
{{Cat|/etc/aliases|root: <your external email where all email to root will be sent>
root: <your external email where all email to root will be sent>


default: <default email>
default: <default email>
</pre>
}}


== Testing ==
== Testing ==
Test an email, run
Test an email, run
<pre>
{{Cmd|echo -e "Subject: Do you love alpine?\nYes, I do!\n" | msmtp root}}
echo -e "Subject: Do you love alpine?\nYes, I do!\n" | msmtp root
{{note|'''root''' only work if you've setup {{Path|/etc/aliases}}, otherwise put any email adress you can check instead of root}}
</pre>
{{note|'''root''' only work if you've setup /etc/aliases, otherwise put any email adress you can check instead of root}}


== Saving the configuration ==
== Saving the configuration ==
<pre>
{{Expand|This does't apply to a static install.}}
sudo lbu ci
 
</pre>
{{Cmd|# lbu ci}}


Hope it helps.
Hope it helps.
[[Category:Monitoring]]
[[Category:Mail]]

Latest revision as of 13:48, 25 August 2023

Overview

If you're running an alpine from stick and need a way for your program to alert you through a standard gmail account

Install msmtp

# apk add msmtp

Configuration

Create a global configuration:

Contents of /etc/msmtprc

# Set default values for all following accounts. defaults auth on tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt syslog on # Gmail account gmail host smtp.gmail.com port 587 from <your email> user <your gmail account> password <your password> # Set a default account account default : gmail aliases /etc/aliases
Note: Please note I've used the syslog on to send msmtp log to syslog, yet you can use the logfile <log_file_path> if you prefer to log to a file
Note: Please note the aliases /etc/aliases, this will help for mail/sendmail to redirect email to local user (like root) to an external email

Sendmail alias

By default alpine comes with busybox sendmail, msmtp can act as a sendmail alternative including syntax and option, there I create a local.d script to overwrite the busybox link to msmtp.

Contents of /etc/local.d/msmtp-sendmail.start

#!/bin/sh ln -sf /usr/bin/msmtp /usr/bin/sendmail ln -sf /usr/bin/msmtp /usr/sbin/sendmail

Make it executable

# chmod +x /etc/local.d/msmtp-sendmail.start

and run it first time through

# /etc/local.d/msmtp-sendmail.start

Mailx and aliases

Install mailx for program that uses mail (like apcupsd for monitoring UPS events)

# apk add mailx

Create an /etc/aliases file with content:

Contents of /etc/aliases

root: <your external email where all email to root will be sent> default: <default email>

Testing

Test an email, run

echo -e "Subject: Do you love alpine?\nYes, I do!\n"

Note: root only work if you've setup /etc/aliases, otherwise put any email adress you can check instead of root

Saving the configuration

This material needs expanding ...

This does't apply to a static install.

# lbu ci

Hope it helps.