AdminsForum

aaPanel BillionMail Guides

Guide BillionMail Not Sending Emails? How to Check if Port 25 Is Blocked

Started by JAY 0 replies 36 views
1JAY
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
#1
BillionMail not sending emails? How to check if port 25 is blocked

You installed BillionMail, the DNS records are green, you send a test... and nothing arrives. Not in the inbox, not in spam. The most common reason by far: your VPS provider blocks outgoing port 25, the port mail servers use to talk to each other. This guide shows how to confirm it in two minutes and what to do about it.

Typical symptoms
  • Test emails and campaigns never arrive at Gmail, Outlook or anywhere else.
  • The task shows as sent, but Settings > Send Queue keeps growing.
  • The delay reason in the queue says
    Code:
    Connection timed out
    next to addresses like
    Code:
    gmail-smtp-in.l.google.com[25]
    .

Why providers block port 25
Spammers love cheap VPS servers, so many cloud providers block outgoing port 25 by default, especially on new accounts. Some unblock it on request (often after your first paid invoice), some never do. Google Cloud, for example, always blocks it; AWS, Azure, DigitalOcean and Hetzner restrict it on many accounts. Rules change, so check your provider's documentation or ask support.

Step 1: Test port 25 from your server
Log in to your server over SSH (or aaPanel's Terminal) and run:
Code:
nc -vz -w 5 gmail-smtp-in.l.google.com 25
  • "succeeded" or "open": port 25 works. Your problem is something else; see the checklist at the end.
  • "timed out": port 25 is blocked, almost always by your provider.
  • "command not found": install netcat (
    Code:
    apt install netcat-openbsd
    or
    Code:
    dnf install nmap-ncat
    ), or use this instead:
    Code:
    timeout 5 bash -c '</dev/tcp/gmail-smtp-in.l.google.com/25' && echo OPEN || echo BLOCKED
Test a second target too, for example
Code:
mx1.mail.yahoo.com
or
Code:
outlook-com.olc.protection.outlook.com
, so one busy server doesn't fool you.

Step 2: Rule out your own firewall
aaPanel's Security page controls incoming traffic, so it rarely blocks outgoing mail. But check for outgoing rules anyway:
Code:
ufw status verbose 2>/dev/null | head -20 firewall-cmd --list-all 2>/dev/null | head -20 iptables -S OUTPUT | head
If you see nothing that rejects port 25 and the test still times out, the block is upstream at your provider.

Step 3: Look at the queue
In BillionMail, open Settings > Send Queue. Each stuck message shows a Delay Reason. From the command line you get the same list with:
Code:
docker exec POSTFIX postqueue -p | tail -30
"Connection timed out" on port 25 confirms the block. Other reasons (rate limits, rejections) are covered in our guide BillionMail emails stuck in the queue.

Step 4: Ask your provider to unblock port 25
Open a support ticket. Short and honest works best:
Quote:Hello, I run a mail server on this VPS (IP: YOUR_IP, hostname: mail.example.com) for my own newsletter and transactional email. SPF, DKIM, DMARC and reverse DNS are set up. Could you please unblock outgoing port 25? I only send to subscribers who signed up, and every email has an unsubscribe link.
Many providers ask you to confirm you won't send spam, or require the account to be a few weeks old. While you wait, Step 5 gets mail flowing.

Step 5: Use an SMTP relay instead
A relay is an outside email service that delivers mail for you. Your server talks to it on port 587 or 465, which providers almost never block. Popular options: Amazon SES, Mailgun, SendGrid, Brevo and Postmark.

In BillionMail, open SMTP (left menu). It opens the SMTP Relay Service Management page, where you add one or more relay services:
[Image: attachment.php?aid=422]
  1. Create an account with the relay service and verify your sending domain there (they give you their own DNS records to add).
  2. Create SMTP credentials in the relay service.
  3. In BillionMail, click Add, choose the service and enter the host, port (587 is the usual choice), username and password.
  4. Send a test from a task and check the queue again.
Important: when you use a relay, add the relay's SPF include to your domain's SPF record, or SPF will fail. Each service documents its exact include.

Don't forget incoming port 25
Outgoing is for sending. Incoming port 25 is how replies and bounce messages reach you. Test it from another computer (not the server itself):
Code:
nc -vz -w 5 mail.example.com 25
If that times out, open port 25 in aaPanel's Security page and in your provider's cloud firewall.

Port 25 is open but mail still doesn't arrive?

More BillionMail troubleshooting
Applies to BillionMail 4.9 installed through aaPanel or the install script, October 2026. Folder paths and container names can differ slightly on your server.
Code:
docker ps --format "{{.Names}}" | grep -i billionmail
lists your container names; use them where a command says POSTFIX, DOVECOT or WEBMAIL.

Attached Files

Image(s)
   
Reply
Possibly Related Threads…matched by title
Replies:0Views:37
Replies:0Views:33
Replies:0Views:31
Replies:0Views:32
Replies:0Views:32

Users browsing this thread: 1 Guest(s)
Forum Jump: