Email Deliverability Guide
- Email Deliverability Guide
This guide provides a comprehensive overview of configuring your MediaWiki 1.40 server for optimal email deliverability. Ensuring emails sent from your wiki (such as password resets, notifications, and user registrations) reach their intended recipients is crucial for a healthy and functional community. This article is aimed at newcomers to server administration and assumes a basic understanding of Linux server environments.
Understanding the Problem
Many factors can contribute to emails being marked as spam or failing to deliver. These include:
- **Reverse DNS (rDNS) Lookup:** The hostname associated with your server's IP address must resolve back to that IP.
- **SPF (Sender Policy Framework):** A DNS record that specifies which mail servers are authorized to send email on behalf of your domain.
- **DKIM (DomainKeys Identified Mail):** Adds a digital signature to outgoing emails, verifying their authenticity.
- **DMARC (Domain-based Message Authentication, Reporting & Conformance):** Builds on SPF and DKIM, providing instructions to receiving mail servers on how to handle emails that fail authentication.
- **Blacklists:** Your server's IP address may be listed on one or more blacklists if it has been associated with spam activity.
- **Mail Server Configuration:** Incorrectly configured mail transfer agent (MTA) settings can lead to deliverability issues.
Prerequisites
Before proceeding, ensure you have:
- Root access to your MediaWiki server.
- A registered domain name.
- Access to your domain's DNS settings.
- A working MediaWiki 1.40 installation. Refer to the Installation guide for assistance.
- Basic familiarity with the command line. See Command Line Basics for more information.
Configuring the Mail Transfer Agent (MTA)
MediaWiki relies on an MTA to send emails. Common MTAs include Postfix, Sendmail, and Exim. This guide focuses on Postfix, as it is widely used and relatively easy to configure. Instructions for other MTAs can be found at External MTA Guides.
Installing Postfix
On Debian/Ubuntu systems:
```bash sudo apt update sudo apt install postfix ```
During installation, you will be prompted to configure Postfix. Choose "Internet Site" for most configurations.
Basic Postfix Configuration
Edit the main Postfix configuration file: `/etc/postfix/main.cf`. Use a text editor like `nano` or `vim`. Refer to Text Editor Usage for more information.
Add or modify the following lines:
- `myhostname = your.domain.com` (Replace with your actual domain)
- `mydomain = your.domain.com` (Replace with your actual domain)
- `myorigin = $mydomain`
- `inet_interfaces = all`
- `mydestination = $myhostname, localhost.$mydomain, localhost`
- `relayhost = ` (Leave blank unless you're relaying through another mail server)
After making changes, restart Postfix:
```bash sudo systemctl restart postfix ```
DNS Records for Email Deliverability
Proper DNS records are essential for establishing trust with receiving mail servers.
SPF Record
Create a TXT record in your DNS settings with the following format:
``` v=spf1 mx a ip4:your_server_ip include:_spf.google.com ~all ```
Replace `your_server_ip` with your server's IP address. The `include:_spf.google.com` is optional if you use Google Workspace. DNS Record Management provides further details.
DKIM Record
1. **Generate a DKIM key pair:**
```bash opendkim-genkey -d your.domain.com -s mail ```
This will create `mail.private` and `mail.txt` files.
2. **Add the public key to your DNS:** Copy the contents of `mail.txt` and create a TXT record in your DNS settings. The name of the record should be `mail._domainkey.your.domain.com`. 3. **Configure Postfix to use DKIM:** Edit `/etc/opendkim.conf` and set `KeyTable` and `SigningTable` appropriately. Refer to DKIM Configuration for detailed instructions.
DMARC Record
Create a TXT record in your DNS settings with the following format:
``` v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; adkim=r; aspf=r; ```
- `p=none`: Start with `none` to monitor DMARC reports without impacting deliverability. Later, you can change this to `quarantine` or `reject`.
- `rua`: Email address to receive aggregate reports.
- `ruf`: Email address to receive forensic reports (use with caution, as these can contain sensitive information).
- `adkim` and `aspf`: Alignment modes for DKIM and SPF.
Monitoring and Troubleshooting
Checking Blacklists
Use online tools like MXToolbox or MultiRBL to check if your server's IP address is listed on any blacklists. If it is, follow the instructions provided by the blacklist operator to request removal.
Analyzing Email Logs
Postfix logs are located in `/var/log/mail.log`. Examine these logs for errors or warnings related to email delivery. Log File Analysis provides guidance on interpreting log files.
Useful Tables
Parameter | Value |
---|---|
MTA | Postfix |
MediaWiki Version | 1.40 |
Operating System | Debian/Ubuntu (Example) |
DNS Record Type | Name | Value |
---|---|---|
TXT | @ | v=spf1 mx a ip4:your_server_ip include:_spf.google.com ~all |
TXT | mail._domainkey | (Contents of mail.txt) |
TXT | _dmarc | v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; adkim=r; aspf=r; |
Log File | Location | Description |
---|---|---|
Mail Log | /var/log/mail.log | Contains information about email delivery, errors, and warnings. |
System Log | /var/log/syslog | General system logs, may contain related information. |
Error Log | /var/log/kern.log | Kernel logs, potentially relevant for network issues. |
Further Resources
- Postfix Documentation
- DKIM Documentation
- SPF Documentation
- DMARC Documentation
- Email Configuration in MediaWiki
Intel-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Core i7-6700K/7700 Server | 64 GB DDR4, NVMe SSD 2 x 512 GB | CPU Benchmark: 8046 |
Core i7-8700 Server | 64 GB DDR4, NVMe SSD 2x1 TB | CPU Benchmark: 13124 |
Core i9-9900K Server | 128 GB DDR4, NVMe SSD 2 x 1 TB | CPU Benchmark: 49969 |
Core i9-13900 Server (64GB) | 64 GB RAM, 2x2 TB NVMe SSD | |
Core i9-13900 Server (128GB) | 128 GB RAM, 2x2 TB NVMe SSD | |
Core i5-13500 Server (64GB) | 64 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Server (128GB) | 128 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Workstation | 64 GB DDR5 RAM, 2 NVMe SSD, NVIDIA RTX 4000 |
AMD-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Ryzen 5 3600 Server | 64 GB RAM, 2x480 GB NVMe | CPU Benchmark: 17849 |
Ryzen 7 7700 Server | 64 GB DDR5 RAM, 2x1 TB NVMe | CPU Benchmark: 35224 |
Ryzen 9 5950X Server | 128 GB RAM, 2x4 TB NVMe | CPU Benchmark: 46045 |
Ryzen 9 7950X Server | 128 GB DDR5 ECC, 2x2 TB NVMe | CPU Benchmark: 63561 |
EPYC 7502P Server (128GB/1TB) | 128 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/2TB) | 128 GB RAM, 2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/4TB) | 128 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/1TB) | 256 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/4TB) | 256 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 9454P Server | 256 GB RAM, 2x2 TB NVMe |
Order Your Dedicated Server
Configure and order your ideal server configuration
Need Assistance?
- Telegram: @powervps Servers at a discounted price
⚠️ *Note: All benchmark scores are approximate and may vary based on configuration. Server availability subject to stock.* ⚠️