A script to facilitate easy installation of a Postfix mail server + Gmail relay for custom emails you can easily access from the Gmail client or other clients supporting SMTPS and POP3
1. Some ports must be exposed to be able to host a mailserver, and to prevent abuse most registrars disable these ports by default. Contact support to have them opened:
* 25: SMTP
* 110: POP3
* 143: IMAP
* 465: SMTPS
* 587: Submission
* 993: Secure IMAP
* 995: Secure POP3
2. Certain DNS records must be added, namely MX and AAAA. MX must contain the mail.domain.com domain and AAAA must contain the mail subdomain
![Example DNS records](images/aaaa.png)
2. Generate an app password at [https://myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords)
3. Select `Other (Custom name)` and enter a distinctive identifier, like `Mailserver mail.domain.com`
![Select app](images/select_app.png)
4. Select generate and keep this app password for installation. You will not be able to see it again so make sure to record it somewhere
* Domain name: Domain name used in the email, also required to configure SSL
* Mail subdomain: Subdomain where actual mailserver will be hosted, it is good practice to not put the mailserver at root
* Admin user: User where administrator mail like webmaster,postmaster etc will be sent
* Certbot email: Email where certbot, SSL, updates will be sent
* Gmail email: Email required to authenticate with the Gmail relay
* App password: Google app password under previous gmail that identifies this server to Google
# After installation
Your new mailserver is most useful when paired with a email client supporting SMTPS and POP3. Gmail has been tested to work but other clients likely work
1. Open `See all settings` on Gmail and navigate to `Accounts and import`
4. SSH into your mailserver. Check the mail using `runuser -l user -c 'mail'` with the user you entered. Enter the number of the most recent email from `Gmail Team` and search for `Confirmation code: XXXXXXXXX` in the body of the email. Copy that code and enter it into the dialog on the Gmail client. Exit `mail` by pressing q twice and pressing Enter.
The profile picture must be SVG Tiny 1.2, which is a slightly different version of SVG. When you generate your SVG ensure the following attributes are set:
```xml
<svg
version="1.2"
baseProfile="tiny-ps"
...
xmlns="http://www.w3.org/2000/svg">
```
Line endings must also be LF only (Windows uses CR LF by default)
4. Support for Gmail and Outlook require a VMC. Because it is 1500$ a year I can't provide a guide on it
# Gmail method for profile picture
1. Navigate to `Google Account -> Personal info -> Contact Info -> Alternate emails` and add your custom email there
2. Set the profile picture of that Google account to the desired picture