Prerequisites
- PHP 8.1 or later
- Composer
- Your mySMTP username and password from the setup email
- Your mySMTP hostname from the setup email (shown as
relayxx.mysmtp.comin these examples)
PHPMailer via Composer
Install
Basic send example
Replace
relayxx.mysmtp.com with your real hostname from the mySMTP setup email. Load credentials from environment variables, never hardcode them in source files.HTML body with attachment
- Symfony Mailer DSN
If you use Symfony, configure the mailer DSN in Replace
.env or config/packages/mailer.yaml:USERNAME, PASSWORD, and relayxx.mysmtp.com with your actual credentials and hostname from the setup email. Symfony Mailer uses STARTTLS automatically on port 587.Error handling
Always wrap PHPMailer calls in a try/catch block.Exception is thrown for SMTP connection failures, authentication errors, and rejected recipients. Inspect $mail->ErrorInfo for the exact server response.
Common errors
535 Authentication failed
535 Authentication failed
Your username or password is incorrect, or your account is not yet activated. Re-enter credentials exactly as shown in the setup email. See Setting up SMTP credentials.
Connection timeout or refused
Connection timeout or refused
Your network or host may block port 587. Try port 2525 with STARTTLS, or port 465 with
PHPMailer::ENCRYPTION_SMTPS. See Supported SMTP ports and encryption.TLS handshake failure
TLS handshake failure
The encryption setting does not match the port. Use
ENCRYPTION_STARTTLS for ports 587 and 2525. Use ENCRYPTION_SMTPS for port 465.Related articles
Use PHPMailer or Symfony Mailer to send transactional and marketing email from PHP through mySMTP. Both libraries support TLS encryption and SMTP authentication.Prerequisites
- PHP 8.1 or later
- Composer
- Your mySMTP username and password from the setup email
- Your mySMTP hostname from the setup email (shown as
relayxx.mysmtp.comin these examples)
PHPMailer via Composer
Install
Basic send example
Replace
relayxx.mysmtp.com with your real hostname from the mySMTP setup email. Load credentials from environment variables, never hardcode them in source files.HTML body with attachment
- Symfony Mailer DSN
If you use Symfony, configure the mailer DSN in Replace
.env or config/packages/mailer.yaml:USERNAME, PASSWORD, and relayxx.mysmtp.com with your actual credentials and hostname from the setup email. Symfony Mailer uses STARTTLS automatically on port 587.Error handling
Always wrap PHPMailer calls in a try/catch block.Exception is thrown for SMTP connection failures, authentication errors, and rejected recipients. Inspect $mail->ErrorInfo for the exact server response.
Common errors
535 Authentication failed
535 Authentication failed
Your username or password is incorrect, or your account is not yet activated. Re-enter credentials exactly as shown in the setup email. See Setting up SMTP credentials.
Connection timeout or refused
Connection timeout or refused
Your network or host may block port 587. Try port 2525 with STARTTLS, or port 465 with
PHPMailer::ENCRYPTION_SMTPS. See Supported SMTP ports and encryption.TLS handshake failure
TLS handshake failure
The encryption setting does not match the port. Use
ENCRYPTION_STARTTLS for ports 587 and 2525. Use ENCRYPTION_SMTPS for port 465..png?fit=max&auto=format&n=-Uw4rR8wfyv_xkzc&q=85&s=898bb0b43b6c9dce61441f46ac9ac860)