Send email from your website or app
Let WordPress, PHP sites and Python apps send mail through your FiniteHost mailbox, with the exact SMTP settings and a Python example.
On this page
Contact forms, order confirmations, password resets and alerts from a script all need to send email. Code hosted on FiniteHost sends it the same way a mail app does: it signs in to FiniteHost's own mail server with a mailbox address and password. Mail sent this way is signed with your domain's DKIM key, so it passes SPF, DKIM and DMARC and stays out of spam.
Before you start#
- Create a mailbox to send from, such as
noreply@acme.inorwebsite@acme.in, under Email accounts in the panel, and note its password. See Email accounts. - Python compute plans have no mailboxes of their own. An app on a Compute plan can sign in with any mailbox you have on a web or Mail plan.
The settings#
| Setting | Value |
|---|---|
| SMTP server (host) | mail.finitehost.com |
| Port and encryption | 587 with STARTTLS, or 465 with SSL/TLS |
| User name | The full mailbox address, for example noreply@acme.in |
| Password | That mailbox's password |
| From address | The same mailbox address. Other From addresses are refused. |
Everything sent this way counts towards that mailbox's daily sending limit, the same as mail from webmail or a phone. See Email limits and policies.
WordPress#
WordPress's built-in wp_mail() has no mail server to talk to here. Install an SMTP plugin, such as WP Mail SMTP or FluentSMTP, and choose its "Other SMTP" (generic SMTP) option:
- SMTP host:
mail.finitehost.com. - Encryption: TLS (STARTTLS) with SMTP port
587, or SSL with port465. - Authentication: on. Username
noreply@acme.in, Password the mailbox password. - From email:
noreply@acme.in, and tick Force From Email if the plugin offers it, so contact-form plugins cannot change it. - Send a test email from the plugin's tools page, to an address outside your domain, and check it arrives.
PHP without WordPress#
Use a mail library with SMTP support, such as PHPMailer or Symfony Mailer, with the settings above. PHP's plain mail() function has no server to hand mail to, so use SMTP instead.
Python#
smtplib is part of Python, so nothing needs installing. Keep the password out of your code: put it in a file in the app folder that is not shared, or in a setting your app reads.
import smtplib
import ssl
from email.message import EmailMessage
HOST = "mail.finitehost.com"
USER = "noreply@acme.in"
PASSWORD = open("mail_password.txt").read().strip()
msg = EmailMessage()
msg["From"] = USER
msg["To"] = "priya@example.com"
msg["Subject"] = "Daily report"
msg.set_content("Today's orders: 42")
with smtplib.SMTP(HOST, 587, timeout=30) as s:
s.starttls(context=ssl.create_default_context())
s.login(USER, PASSWORD)
s.send_message(msg)For port 465, use smtplib.SMTP_SSL(HOST, 465, context=ssl.create_default_context(), timeout=30) and leave out the starttls() line.
Troubleshooting#
| Symptom | Cause and fix |
|---|---|
| Connection times out | The host is not mail.finitehost.com, or the port is 25. Use 587 or 465. |
535 Authentication failed | Wrong user name or password. The user name is the full address. Make a new password in the panel if unsure. |
553 Sender address rejected: not owned by user | The From address differs from the signed-in mailbox. Make them the same. |
| Sending stops after many messages | The mailbox reached its sending limit. Wait, or upgrade. Use a bulk-mail service for newsletters. |
CERTIFICATE_VERIFY_FAILED | You connected by IP address. Use the name mail.finitehost.com, which the certificate covers. |
| Mail arrives in spam | See Keep your mail out of spam. |
What's next#
Was this helpful?
Still stuck?
Email support@finitehost.com with your subscription ID (it starts with t, shown on the panel's Dashboard) and what you tried. A person replies, usually within one business day.
Last updated 27 October 2026. Found something wrong? Tell support@finitehost.com.