The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Configure Discourse SMTP in /var/discourse/containers/app.yml, inside the container’s env section. Enter the hostname, port, credentials and TLS mode supplied by your mail provider, then recreate or rebuild the app container so Discourse actually loads the new environment. Port 587 with STARTTLS is the usual authenticated choice; port 465 uses implicit TLS and needs a different setting.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Where Discourse stores SMTP settings
A standard self-hosted Docker installation reads mail settings from /var/discourse/containers/app.yml. Add the variables under the existing env: block. These values control the SMTP server Discourse uses to validate new accounts and send notifications.
As an Amazon Associate I earn from qualifying purchases.
“The SMTP mail server used to validate new accounts and send notifications.”
Do not put these values in a theme, a plugin configuration file or a shell profile. The application container receives them from app.yml when it is created. Editing another file will not change the running container.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Required and commonly used variables
| Variable | Purpose | What to enter |
|---|---|---|
DISCOURSE_SMTP_ADDRESS |
SMTP server hostname | The exact hostname supplied by your provider; this is mandatory in the Discourse template. |
DISCOURSE_SMTP_PORT |
TCP submission port | Usually 587 for authenticated STARTTLS, but use the provider’s documented port. |
DISCOURSE_SMTP_USER_NAME |
SMTP login name | Your provider’s required username, often a complete mailbox address. |
DISCOURSE_SMTP_PASSWORD |
SMTP credential | The SMTP password, API-generated SMTP password or other credential specified by the provider. |
DISCOURSE_SMTP_ENABLE_START_TLS |
Upgrade a plain SMTP connection to TLS with STARTTLS | Use true when the provider expects STARTTLS, commonly on port 587. |
Credentials are provider-dependent. Some services issue a separate SMTP credential rather than allowing the password used for webmail. Others require a verified sending domain or a mailbox-specific login.
Before editing app.yml
Collect the provider’s current SMTP instructions first. You need four pieces of information: the server hostname, the submission port, the encryption mode and the authentication method. Also confirm whether the service requires a domain value, a verified sender and a special password.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problems- Ensure you can log in to the Discourse host as a user who can edit files under
/var/discourse. - Keep a copy of the current
containers/app.ymlso you can restore the previous configuration if a rebuild fails. - Have the provider’s exact error text available. “Authentication failed,” “sender rejected” and “TLS negotiation failed” require different fixes.
- Choose a mailbox or sender domain that the provider permits for automated notifications.
Never paste an SMTP password into a public support post or commit it to a repository. The value is stored in the container configuration and should be readable only by administrators who manage the forum.
Configure SMTP in containers/app.yml
Open the file on the Discourse host:
cd /var/discourse
nano containers/app.yml
Inside the existing env: section, add the SMTP variables with consistent YAML indentation. This is a complete example using a provider that supports authenticated STARTTLS on port 587:
env:
DISCOURSE_SMTP_ADDRESS: smtp.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: [email protected]
DISCOURSE_SMTP_PASSWORD: 'replace-with-secret'
DISCOURSE_SMTP_ENABLE_START_TLS: true
Merge these lines into your current file rather than replacing the entire file. The standard Discourse configuration contains other environment variables that must remain intact.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
YAML details that prevent common mistakes
- Use spaces, not tabs, for indentation.
- Keep the variable names uppercase and spell them exactly as shown.
- Quote a password when it contains characters that YAML could interpret, such as a colon, hash mark or leading special character. Single or double quotes are valid YAML when balanced.
- Use the boolean
trueorfalsefor TLS; do not add quotation marks unless your provider’s instructions specifically require a string. - Do not add spaces or comments inside a password value.
Discourse’s defaults are smtp_port: 25, smtp_authentication: plain and smtp_enable_start_tls: true. Authentication is used when a username or password is present. Setting the environment variables explicitly makes the intended configuration easier to audit and avoids relying on a default that does not match your provider.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Choose the port and encryption mode
The provider determines which port and TLS mode are valid. Port numbers are not interchangeable: a connection can fail even when the hostname, username and password are correct if the encryption mode does not match the port.
| Port | Typical mode | When to use it | Discourse considerations |
|---|---|---|---|
25 |
SMTP, often upgraded with STARTTLS | Legacy server-to-server or provider-specific arrangements | This is Discourse’s default port, but hosting networks commonly restrict outbound port 25. Use it only when your provider and host explicitly support it. |
587 |
Authenticated submission with STARTTLS | The normal choice for application-generated mail | Set DISCOURSE_SMTP_PORT: 587 and normally leave DISCOURSE_SMTP_ENABLE_START_TLS: true. |
465 |
Implicit TLS from the first byte | Providers that document SMTPS on 465 | Discourse troubleshooting guidance calls for DISCOURSE_SMTP_FORCE_TLS: true. Do not treat 465 as STARTTLS. |
2525 |
Provider-defined submission, commonly STARTTLS | An alternate when 25, 587 or 465 is blocked or unavailable | Use only if your provider offers it, and copy its required TLS setting. |
Port 587 with STARTTLS
For the common submission setup, use the provider’s SMTP hostname, port 587 and STARTTLS enabled. The connection begins unencrypted, advertises STARTTLS and then negotiates TLS before authentication and message transfer. If the provider documents port 587, do not add the implicit-TLS setting intended for port 465.
Port 465 with implicit TLS
Port 465 starts inside TLS instead of upgrading a plain connection. In the troubleshooting guidance for Discourse, add this variable when your provider specifically requires implicit TLS:
DISCOURSE_SMTP_FORCE_TLS: true
Keep the provider’s required username, password and sender-domain settings alongside it. If you set both STARTTLS and forced TLS without checking the provider’s instructions, the client can attempt the wrong handshake.
Recommended Free Tools
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Provider-specific variables
Some services require DISCOURSE_SMTP_DOMAIN. Others require a particular OpenSSL verification mode, exposed as DISCOURSE_SMTP_OPENSSL_VERIFY_MODE. These are not universal settings. Add them only with the exact value and spelling in the provider’s current documentation; copying a value from an unrelated service can disable certificate verification or prevent a connection.
Recreate the app so the variables take effect
Saving app.yml does not change the environment of an already-created container. From the Discourse directory, the support procedure for recreating the app is:
cd /var/discourse
./launcher destroy app
./launcher start app
A simple container restart may leave the old environment in place. If your normal maintenance process uses a rebuild, this is another documented application path:
cd /var/discourse
./launcher rebuild app
Use one complete method, not a mixture of partial commands. Wait for the launcher to finish and confirm that the app starts normally before testing mail. If the launcher reports a YAML or build error, restore the last known-good file, correct the indentation or value, and run the appropriate launcher command again.
Free tools Windows power users keep installed
One-click scans. No signup required.
Set a sender address the provider accepts
SMTP authentication and sender authorization are separate checks. A provider can accept the username and password and still reject a message whose From address is not permitted.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Discourse exposes the notification sender as the SiteSetting.notification_email setting. Set it to the authenticated mailbox address when your provider requires the sender to match the mailbox. If you are sending from a verified domain, use the exact address and domain combination approved by that provider.
- Use the mailbox address associated with the SMTP login when the service enforces an exact match.
- Do not assume that an arbitrary administrator address is valid merely because it is a real address.
- When a provider supports domain verification, complete that verification and follow its permitted-sender rules before testing.
A sender rejection usually appears after authentication succeeds. Treat it as a policy or address problem rather than repeatedly changing the password.
Test delivery and read the right evidence
After the container is recreated, generate a low-risk notification, such as a test account confirmation or password-reset message, and watch both sides of the transaction. Discourse email logs show the application-side result; the provider’s SMTP response explains whether it accepted, deferred or rejected the message.
Record the timestamp, recipient, sender and complete error text. The distinction matters:
- Connection or timeout: the host cannot reach the SMTP endpoint, the port is blocked, DNS is failing or the endpoint is unavailable.
- TLS or certificate error: the selected port and encryption mode do not match, or a provider-specific verification requirement is missing.
- Authentication failure: the username, password, credential type or required domain value is wrong.
- Sender rejected: the authenticated mailbox or domain is not allowed in the
Fromaddress. - Accepted but not received: inspect the provider’s delivery, bounce and suppression records and the recipient mailbox’s spam handling.
Do not mark the setup complete solely because Discourse accepted a request. Successful SMTP submission is different from final delivery to the recipient.
Best Value
Troubleshoot in a fixed order
Changing several variables at once makes SMTP failures harder to diagnose. Work through these checks in order and retest after each relevant change.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall- Resolve the hostname from the Discourse host. Confirm that the SMTP name resolves to an address from the same server running Discourse. A typo or a DNS problem must be fixed before credentials can work.
- Verify outbound connectivity. Check that the hosting network permits connections to the provider’s documented port. If port 25 is filtered, use the provider’s authenticated submission port instead of repeatedly retrying.
- Match the TLS mode to the port. Use STARTTLS for a provider’s port 587 instructions. Use forced implicit TLS for a provider that explicitly documents port 465. For 2525, follow the provider’s own mode.
- Recheck credentials and domain requirements. Confirm capitalization, the complete username, the SMTP-specific password and any required
DISCOURSE_SMTP_DOMAINvalue. - Recreate or rebuild the app. If you edited
app.ymlbut only restarted the process, the old environment may still be loaded. Run the documented launcher procedure and then retest. - Correct the notification sender. Set
SiteSetting.notification_emailto a permitted mailbox or verified-domain address when the provider rejects theFromheader. - Read both logs. Compare the Discourse email log with the provider’s authentication, rejection or bounce message. The provider’s response usually identifies the exact policy being enforced.
- Try an alternate submission port. If your provider offers 2525, test it when another port is blocked. Do not assume that every provider supports every alternate.
When the app starts but mail still fails
An app that boots successfully has only proved that the YAML is syntactically valid and the container can run. It has not proved DNS resolution, network egress, TLS negotiation, authentication or sender authorization. Use the error categories above rather than rebuilding repeatedly without changing the failing condition.
When mail works for one recipient but not another
Separate SMTP acceptance from downstream delivery. If the provider accepted the message, inspect its delivery and bounce information and then check the recipient’s spam or quarantine controls. A Discourse-side configuration change cannot correct a recipient-domain rejection that occurs after submission.
Use a managed SMTP service instead of operating a mail server
For a new community, Discourse support advice generally favors an existing SMTP service over running a mail server yourself. A managed service supplies the submission endpoint and authentication controls; you still need to configure sender authorization and monitor delivery. Operating your own server adds responsibility for DNS, reputation, TLS certificates, queue management, bounce processing and abuse handling, none of which is solved by adding variables to app.yml.
Amazon SES is one example of a service discussed in Discourse configuration guidance, but the same setup principles apply to any provider: copy its current hostname, port, TLS mode, credentials and sender-verification requirements rather than using generic values.
Compare providers on operational criteria
| Criterion | Questions to ask |
|---|---|
| Delivery reputation | How does the service manage abuse, bounces and reputation for shared or dedicated sending infrastructure? |
| Authentication | Does it use a mailbox password, a generated SMTP credential, an API key converted for SMTP or another login format? |
| Ports and TLS | Are 587 with STARTTLS, 465 with implicit TLS or 2525 available from your host? |
| Sender verification | Must you verify one mailbox, an entire domain or specific DNS records before sending? |
| Logs and bounce handling | Can you see accepted, deferred, bounced and rejected messages with useful reason codes? |
| Regional availability | Is the service available to your organization and recipient regions, and are there data-location constraints? |
| Price | What recurring charges, message allowances, overage rates or verification fees apply to your expected volume? |
No single provider is correct for every forum. Prioritize reliable delivery and diagnosable logs over a nominally cheap endpoint, because an untraceable rejection can prevent account confirmations and password resets.
Quick Recap
Security and maintenance checklist
- Store the SMTP password only in the protected Discourse configuration and limit host access to administrators.
- Use a credential created for SMTP when the provider offers one; rotate it if it is exposed or when staff access changes.
- Keep STARTTLS or implicit TLS enabled exactly as the provider specifies. Do not disable certificate verification merely to bypass an error.
- Use a sender address that the provider has authorized, and complete domain verification where required.
- Document the provider hostname, port, TLS mode and credential owner so another administrator can recover the setup without guessing.
- After provider or credential changes, recreate or rebuild the app and send a controlled test notification.
- Review Discourse and provider logs after upgrades or infrastructure moves; DNS, firewall and provider policies can change independently of Discourse.
Configuration checklist
- Obtain the provider’s SMTP hostname, port, TLS mode, username, password and sender rules.
- Edit
/var/discourse/containers/app.ymland place the variables beneathenv:. - Use port 587 with STARTTLS when that is the provider’s documented submission method.
- For documented implicit TLS on port 465, add
DISCOURSE_SMTP_FORCE_TLS: true. - Add provider-specific domain or OpenSSL settings only when the provider requires them.
- Recreate the container with
./launcher destroy appfollowed by./launcher start app, or use./launcher rebuild appas your maintenance path. - Set
SiteSetting.notification_emailto an allowed mailbox or verified sender. - Send a test notification, then inspect both Discourse’s email log and the provider’s response.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

