My server cannot send emails

I’ve been debugging the mail sending server for Discourse, but I’ve run into an issue and was hoping I could get some help from you all!

DISCOURSE DOCTOR Tue Feb 3 12:57:50 PM CST 2026
OS: Linux instance-CvKJK0U4 6.12.38+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.38-1 (2025-07-16) x86_64 GNU/Linux

Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=metatest.smtc2web.org
SMTP_ADDRESS=smtp.resend.com

DEVELOPER_EMAILS=akarinliu@outlook.com


SMTP_PASSWORD=Mt$ygA$@yMhnF9#$
SMTP_PORT=465

SMTP_USER_NAME=noreply@akarinliu.com

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 29.2.1, build a5c7197

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS          PORTS                                                                                NAMES
3e1f56e5922e   local_discourse/app                   “/sbin/boot”             43 seconds ago   Up 43 seconds   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp, 0.0.0.0:8443->443/tcp, [::]:8443->443/tcp   app
467515024af6   1panel/openresty:1.27.1.2-5-1-focal   “/usr/local/openrest…”   3 hours ago      Up 3 hours                                                                                           1Panel-openresty-0VRP

3e1f56e5922e   local_discourse/app                   “/sbin/boot”             43 seconds ago   Up 43 seconds   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp, 0.0.0.0:8443->443/tcp, [::]:8443->443/tcp   app

Discourse container app is running

==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git

No non-official plugins detected.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at metatest.smtc2web.org: NOT FOUND
Discourse version at localhost: NOT FOUND

==================== MEMORY INFORMATION ====================
RAM (MB): 2069

       total        used        free      shared  buff/cache   available

Mem:            1973        1480         217          33         493         492
Swap:           2047         291        1756

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
df: /var/discourse: No such file or directory
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        30G   11G   18G  37% /

==================== DISK INFORMATION ====================
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 \* 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x86a4d272

Device     Boot Start      End  Sectors Size Id Type
/dev/sda1  \*     2048 62914526 62912479  30G 83 Linux

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? (‘n’ to skip) [akarinliu@outlook.com]:
Sending mail to akarinliu@outlook.com. . .
Testing sending to akarinliu@outlook.com using smtp.resend.com:465, username:noreply@akarinliu.com with plain auth.
==================================== ERROR =====================================
UNKNOWN ERROR!
Net::ReadTimeout: Net::ReadTimeout with #<TCPSocket:(closed)>
=================================== SOLUTION ===================================
This is not a common error. No recommended solution exists!

# Please report the exact error message above to https://meta.discourse.org/
(And a solution, if you find one!)

Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to

==================== DONE! ====================
Would you like to serve a publicly available version of this file? (Y/n) n
Publicly available log not generated.

You can examine the output of this script with
LESS=-Ri less /tmp/discourse-debug.txt

BUT FIRST, make sure that you know the first three commands below!!!

Commands to know when viewing the file with the above command (called ‘less’):
q              – quit
/error  – search for the word ‘error’
n              – search for the next occurrence
g              – go to the beginning of the file
f              – go forward a page
b              – go back a page
G              – go to the end of the file

You exposed your SMTP creds and personal email, you should probably take them out before an indexer finds them.

Anything in logs? What cloud host are you using? Some providers like Linode block SMTP ports. I’d suspect a block based on the timeout but you can also test from your LAN as long as your ISP isn’t doing anything weird.