184 lines
4.1 KiB
Markdown
184 lines
4.1 KiB
Markdown
# Quick Start Guide
|
|
|
|
## Prerequisites Checklist
|
|
|
|
Before running the setup script, ensure you have:
|
|
|
|
- [ ] Fresh Ubuntu 20.04+ or Debian 11+ server
|
|
- [ ] Root access to the server
|
|
- [ ] Domain name (e.g., `example.com`)
|
|
- [ ] Subdomain for mail server (e.g., `mail.example.com`)
|
|
- [ ] DNS A record: `mail.example.com` → Your server IP
|
|
- [ ] DNS MX record: `example.com` → `mail.example.com`
|
|
- [ ] Server ports 25, 587, 465, 143, 993, 110, 995, 80, 443 accessible
|
|
|
|
## Quick Installation
|
|
|
|
1. **Download the setup script:**
|
|
```bash
|
|
wget https://raw.githubusercontent.com/your-repo/setup-email-server.sh
|
|
chmod +x setup-email-server.sh
|
|
```
|
|
|
|
2. **Run as root:**
|
|
```bash
|
|
sudo ./setup-email-server.sh
|
|
```
|
|
|
|
3. **Follow the prompts to enter:**
|
|
- Domain name (e.g., `example.com`)
|
|
- Hostname (e.g., `mail.example.com`)
|
|
- Admin email
|
|
- Database password
|
|
- PostfixAdmin setup password
|
|
|
|
4. **Wait for completion** (15-30 minutes)
|
|
|
|
## Post-Installation Steps
|
|
|
|
### 1. Add DNS Records
|
|
|
|
Copy the DNS records displayed at the end of the script:
|
|
|
|
```dns
|
|
; SPF Record
|
|
example.com. IN TXT "v=spf1 mx ~all"
|
|
|
|
; DMARC Record
|
|
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
|
|
|
|
; DKIM Record (copy from script output)
|
|
mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=..."
|
|
```
|
|
|
|
### 2. Configure PostfixAdmin
|
|
|
|
1. Visit: `https://mail.example.com/postfixadmin/setup.php`
|
|
2. Enter the setup password you created
|
|
3. Create admin user
|
|
4. Login at: `https://mail.example.com/postfixadmin/`
|
|
|
|
### 3. Create Your First Domain and Mailbox
|
|
|
|
1. In PostfixAdmin, add your domain (`example.com`)
|
|
2. Create a mailbox (e.g., `user@example.com`)
|
|
3. Test by sending an email
|
|
|
|
## Testing
|
|
|
|
Run the test script:
|
|
```bash
|
|
./test-email-server.sh
|
|
```
|
|
|
|
## Maintenance
|
|
|
|
Set up automated maintenance:
|
|
```bash
|
|
# Add to crontab
|
|
sudo crontab -e
|
|
|
|
# Add these lines:
|
|
0 2 * * * /path/to/maintenance-email-server.sh
|
|
0 5 1 * * /path/to/backup-email-server.sh
|
|
```
|
|
|
|
## Client Configuration
|
|
|
|
### IMAP Settings:
|
|
- **Server:** mail.example.com
|
|
- **Port:** 993
|
|
- **Security:** SSL/TLS
|
|
- **Authentication:** Normal password
|
|
|
|
### SMTP Settings:
|
|
- **Server:** mail.example.com
|
|
- **Port:** 587
|
|
- **Security:** STARTTLS
|
|
- **Authentication:** Normal password
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues:
|
|
|
|
1. **Can't connect to PostfixAdmin:**
|
|
- Check Apache status: `systemctl status apache2`
|
|
- Verify SSL certificate: `openssl s_client -connect mail.example.com:443`
|
|
|
|
2. **Email not sending:**
|
|
- Check Postfix status: `systemctl status postfix`
|
|
- View logs: `tail -f /var/log/mail.log`
|
|
- Test SMTP: `telnet localhost 25`
|
|
|
|
3. **Email not receiving:**
|
|
- Check MX record: `dig MX example.com`
|
|
- Check firewall: `ufw status`
|
|
- Test port 25: `telnet mail.example.com 25`
|
|
|
|
4. **DKIM issues:**
|
|
- Test DKIM: `opendkim-testkey -d example.com -s mail -vvv`
|
|
- Check DNS: `dig TXT mail._domainkey.example.com`
|
|
|
|
### Log Files:
|
|
- Main mail log: `/var/log/mail.log`
|
|
- Setup log: `/var/log/email-server-setup.log`
|
|
- Apache error log: `/var/log/apache2/error.log`
|
|
|
|
### Useful Commands:
|
|
```bash
|
|
# Check all services
|
|
systemctl status postfix dovecot amavis spamassassin clamav-daemon opendkim apache2
|
|
|
|
# Test configuration
|
|
postfix check
|
|
dovecot -n
|
|
|
|
# Check mail queue
|
|
mailq
|
|
|
|
# Flush mail queue
|
|
postqueue -f
|
|
|
|
# Check disk space
|
|
df -h
|
|
|
|
# View active connections
|
|
ss -tulpn | grep :25
|
|
```
|
|
|
|
## Security Recommendations
|
|
|
|
1. **Keep system updated:**
|
|
```bash
|
|
apt update && apt upgrade -y
|
|
```
|
|
|
|
2. **Monitor logs regularly:**
|
|
```bash
|
|
tail -f /var/log/mail.log | grep -i error
|
|
```
|
|
|
|
3. **Backup regularly:**
|
|
```bash
|
|
./backup-email-server.sh --include-mail
|
|
```
|
|
|
|
4. **Test SSL certificates:**
|
|
```bash
|
|
openssl x509 -in /etc/letsencrypt/live/mail.example.com/fullchain.pem -noout -dates
|
|
```
|
|
|
|
5. **Monitor disk space:**
|
|
```bash
|
|
df -h /var/mail/vhosts
|
|
```
|
|
|
|
## Getting Help
|
|
|
|
1. Run the test script: `./test-email-server.sh`
|
|
2. Check the setup log: `/var/log/email-server-setup.log`
|
|
3. Use online testing tools:
|
|
- [MX Toolbox](https://mxtoolbox.com/)
|
|
- [Mail Tester](https://www.mail-tester.com/)
|
|
- [DKIM Validator](https://dkimvalidator.com/)
|