Back to articles
Technology Insight

Build a Self-Hosted Email Marketing System on VPS: Sendy + Amazon SES for 10k Emails/Month at $1

May 18, 2026

Introduction: The High Cost of Email Marketing Platforms

For businesses scaling their digital marketing efforts, email remains one of the most effective channels for customer engagement, retention, and conversion. However, as subscriber lists grow, so do the costs associated with popular email marketing services like Mailchimp, Constant Contact, or HubSpot. Sending 10,000 emails per month can easily cost $50-$100 or more with these platforms, creating a significant recurring expense.

There is a powerful alternative: building your own self-hosted email marketing system. By combining Sendy—a self-hosted email marketing application—with Amazon Simple Email Service (SES)—a highly scalable and cost-effective email sending service—you can achieve remarkable savings. This guide will walk you through creating a system capable of sending 10,000 emails per month for approximately $1, while giving you complete control over your data, design, and deliverability.

Why Choose a Self-Hosted Email Marketing Solution?

Before diving into the technical implementation, it's crucial to understand the compelling advantages of a self-hosted approach over traditional Software-as-a-Service (SaaS) email marketing platforms.

Unbeatable Cost Efficiency

The primary driver for this setup is cost. Amazon SES charges a mere $0.10 for every 1,000 emails sent. At 10,000 emails per month, that's just $1.00 in sending costs. Sendy itself is a one-time purchase of approximately $69. When hosted on a modest Virtual Private Server (VPS) costing around $5-$10 per month, your total operational cost becomes a fraction of what you would pay a SaaS provider. For businesses with large lists or high-frequency sends, the savings compound dramatically.

Complete Data Ownership and Privacy

Hosting Sendy on your own server means your subscriber data, campaign analytics, and templates never leave your infrastructure. This is a critical consideration for businesses operating under strict data privacy regulations like GDPR or CCPA, or for those who simply prioritize customer data security. You are not sharing your most valuable asset—your audience—with a third-party platform.

Superior Deliverability and Control

Amazon SES is used by some of the world's largest companies to send transactional and marketing emails. Its infrastructure is designed for high deliverability. When you properly configure your domain and maintain good sending practices (like list hygiene and engagement monitoring), you can achieve inbox placement rates that rival or exceed those of dedicated marketing platforms. You have direct access to bounce and complaint feedback loops, allowing for precise list management.

Unlimited Customization and Scalability

With a self-hosted solution, you are not constrained by template limitations, workflow rules, or subscriber tier caps imposed by a SaaS vendor. You can customize Sendy's code, integrate it directly with your CRM or e-commerce platform via its API, and scale your sending volume instantly with Amazon SES's pay-as-you-go model.

Architecture Overview: Sendy + Amazon SES + VPS

The system architecture is elegantly simple yet powerful:

  1. Sendy Application: Installed on your VPS. This PHP/MySQL application handles list management, campaign creation, template design, subscriber analytics, and click/open tracking.
  2. Amazon SES: Acts as the email sending engine. Sendy connects to the SES API to dispatch emails. SES manages the complexities of SMTP, reputation, bounce processing, and compliance.
  3. Virtual Private Server (VPS): Provides the hosting environment for Sendy and its database. A server with 1-2 GB RAM, 1 vCPU, and 20-25 GB SSD storage (e.g., a basic DigitalOcean droplet or Linode instance) is more than sufficient.
  4. Your Domain: You will configure your domain's DNS records (SPF, DKIM, DMARC) to authorize Amazon SES to send email on your behalf, ensuring authenticity and high deliverability.

Step-by-Step Implementation Guide

Phase 1: Setting Up Amazon SES

Your first task is to establish a verified sending identity within Amazon SES.

  • Create an AWS Account: If you don't have one, sign up at aws.amazon.com. You will need to provide a credit card, but the SES free tier includes 62,000 emails per month for the first 12 months.
  • Verify Your Domain: In the SES console, navigate to "Verified identities" and click "Create identity." Choose "Domain" and enter your sending domain (e.g., yourbusiness.com). AWS will provide several DNS records (TXT records for SPF and DKIM) that you must add to your domain's DNS configuration. This process proves you own the domain and is essential for establishing sender reputation.
  • Move Out of the Sandbox: New SES accounts start in a "sandbox" mode, which restricts you to sending only to verified email addresses. You must submit a request to AWS Support to move your account into production mode. In your request, clearly describe your use case (marketing newsletters, lawful opt-in lists) and agree to their sending policies. Approval is typically granted within 24 hours.
  • Generate SMTP Credentials: While Sendy can use the SES API, SMTP is often simpler to configure. In the SES console, under "SMTP settings," create a new set of credentials. Note the SMTP server endpoint (e.g., email-smtp.us-east-1.amazonaws.com), port (587 for TLS), and the generated username and password.

Phase 2: Provisioning and Configuring Your VPS

Next, prepare the server environment for Sendy.

  • Choose a VPS Provider: Select a reliable provider like DigitalOcean, Linode, Vultr, or AWS Lightsail. A $5-$10/month plan is ideal.
  • Install a LAMP Stack: Your server needs Linux (Ubuntu 22.04 LTS is recommended), Apache, MySQL, and PHP. You can install these with a single command using a script or your distribution's package manager. Ensure PHP version 7.4 or higher is installed with required extensions (curl, mysqli, gd, mbstring).
  • Secure Your Server: This is non-negotiable. Create a non-root sudo user, set up a firewall (UFW), install and fail2ban, and secure your MySQL installation. Configure an SSL certificate for your domain using Let's Encrypt and Certbot to ensure all connections to your Sendy installation are encrypted via HTTPS.
  • Create a MySQL Database: Log into MySQL and create a new database and a dedicated user for Sendy, granting the user full privileges on that database.

Phase 3: Installing and Configuring Sendy

Now, install the core application.

  • Purchase and Download Sendy: Buy a license from sendy.co. Download the application files.
  • Upload and Extract: Upload the Sendy zip file to your VPS (e.g., in the /var/www/html/sendy directory) and extract it. Set the correct file permissions so the web server can write to necessary directories.
  • Run the Installer: Navigate to your domain (e.g., https://newsletter.yourbusiness.com) in a web browser. The Sendy installer will guide you through the setup. You will need to enter your license key, the MySQL database details you created earlier, and your application's URL.
  • Configure Amazon SES Connection: Within the Sendy admin panel, go to Settings. Enter the Amazon SES SMTP credentials you generated earlier: server, port, username, and password. Send a test email to verify the connection is successful.

Best Practices for Management and Deliverability

Building the system is only half the battle; maintaining it properly is key to long-term success.

List Hygiene and Permission

Always use double opt-in. Sendy supports this natively. This ensures subscribers genuinely want your emails, which drastically reduces complaint rates and protects your sending reputation with Amazon SES. Regularly clean your list by removing hard bounces and subscribers who haven't engaged with your emails in several months.

Monitoring and Analytics

Sendy provides excellent built-in analytics for opens, clicks, bounces, and unsubscribes. Monitor these metrics closely. A sudden spike in bounces or spam complaints is a red flag. Additionally, monitor your Amazon SES sending statistics and reputation metrics in the AWS console. Set up CloudWatch alarms to notify you of any spikes in bounce or complaint rates.

Content and Sending Strategy

Warm up your new SES sending identity by starting with small volumes to your most engaged subscribers. Gradually increase volume over 1-2 weeks. Craft valuable, relevant content that encourages engagement. Avoid spam-triggering words in your subject lines and content. Maintain a consistent sending schedule that your audience comes to expect.

Technical Maintenance

Regularly update your VPS operating system and software packages for security patches. Set up automated backups for your Sendy database and application files. Monitor your VPS's disk space and RAM usage to ensure optimal performance.

Conclusion: Taking Control of Your Marketing Infrastructure

Building a self-hosted email marketing system with Sendy and Amazon SES represents a strategic shift from being a tenant on a SaaS platform to being the owner of a critical business infrastructure. The initial setup requires technical effort, but the long-term benefits—dramatic cost reduction, complete data sovereignty, and unparalleled control over deliverability—are transformative.

For a total ongoing cost of roughly $6-$11 per month (VPS hosting + SES fees), you gain a powerful, scalable platform capable of serving businesses from startup to enterprise. This model proves that sophisticated marketing technology need not be expensive or opaque. By investing in this setup, you invest in a direct, owned, and efficient channel to your audience, freeing up budget for other growth initiatives while building an asset entirely under your control.

This approach demystifies email marketing technology, placing the power of direct communication back into the hands of businesses. It's a testament to the efficiency achievable through smart integration of best-in-class, modular cloud services.