Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

robman70's avatar

Sending mails using local server, not esternal SMTP

Hello, I'm probably a bit confused about configuring sending emails in Laravel... In the development environment everything works fine but, moving to the production environment, I have a configuration problem. In the development environment I had left the default configuration (STMP, with mailgun... I don't understand about this: is mailgun used for free???). Moving on to the production server, I would like to configure the system to send emails using my local system, not an external SMTP. The machine obviously has its own SSL certificate and sending from PHP, using the classic mail() function, without particular configurations, works correctly. Could you please tell me how to configure Laravel? I tried to set both sendmail and SMTP (putting the local server) but I always get the same error:

Unable to connect with STARTTLS: stream_socket_enable_crypto(): Peer certificate CN=<my_domain>' (obviously it doesn't say my_domain but my domain name) did not match expected CN=localhost'

Can you help me?

0 likes
7 replies
robman70's avatar

Thank you for your reply.

I tried with this:

MAIL_MAILER=sendmail
MAIL_HOST=<my_domain>
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="<my_address>"
MAIL_FROM_NAME="${APP_NAME}"

and this:

MAIL_MAILER=smtp
MAIL_HOST=<my_domain>
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="<my_address>"
MAIL_FROM_NAME="${APP_NAME}"
robman70's avatar

@Sinnbeck No... the first is what i think is ok to use, but i tried to use smtp config as well, mail result is the same

Sinnbeck's avatar
Sinnbeck
Best Answer
Level 102

@robman70 Try the first again and ensure your config isnt cached php artisan config:clear

robman70's avatar

My config/mail.php (I don't understand if this is important or if the settings present in the .env override these):

<?php

return [

	/*
    |--------------------------------------------------------------------------
    | Default Mailer
    |--------------------------------------------------------------------------
    |
    | This option controls the default mailer that is used to send any email
    | messages sent by your application. Alternative mailers may be setup
    | and used as needed; however, this mailer will be used by default.
    |
    */

	'default' => env('MAIL_MAILER', 'smtp'),

	/*
    |--------------------------------------------------------------------------
    | Mailer Configurations
    |--------------------------------------------------------------------------
    |
    | Here you may configure all of the mailers used by your application plus
    | their respective settings. Several examples have been configured for
    | you and you are free to add your own as your application requires.
    |
    | Laravel supports a variety of mail "transport" drivers to be used while
    | sending an e-mail. You will specify which one you are using for your
    | mailers below. You are free to add additional mailers as required.
    |
    | Supported: "smtp", "sendmail", "mailgun", "ses",
    |            "postmark", "log", "array", "failover"
    |
    */

	'mailers' => [
		'smtp' => [
			'transport' => 'smtp',
			'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
			'port' => env('MAIL_PORT', 587),
			'encryption' => env('MAIL_ENCRYPTION', 'tls'),
			'username' => env('MAIL_USERNAME'),
			'password' => env('MAIL_PASSWORD'),
			'timeout' => null,
			'local_domain' => env('MAIL_EHLO_DOMAIN'),
		],

		'ses' => [
			'transport' => 'ses',
		],

		'mailgun' => [
			'transport' => 'mailgun',
		],

		'postmark' => [
			'transport' => 'postmark',
		],

		'sendmail' => [
			'transport' => 'sendmail',
			'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
		],

		'log' => [
			'transport' => 'log',
			'channel' => env('MAIL_LOG_CHANNEL'),
		],

		'array' => [
			'transport' => 'array',
		],

		'failover' => [
			'transport' => 'failover',
			'mailers' => [
				'smtp',
				'log',
			],
		],
	],

	/*
    |--------------------------------------------------------------------------
    | Global "From" Address
    |--------------------------------------------------------------------------
    |
    | You may wish for all e-mails sent by your application to be sent from
    | the same address. Here, you may specify a name and address that is
    | used globally for all e-mails that are sent by your application.
    |
    */

	'from' => [
		'address' => env('MAIL_FROM_ADDRESS', '[email protected]'),
		'name' => env('MAIL_FROM_NAME', 'ONE MORE DAY'),
	],

	/*
    |--------------------------------------------------------------------------
    | Markdown Mail Settings
    |--------------------------------------------------------------------------
    |
    | If you are using Markdown based email rendering, you may configure your
    | theme and component paths here, allowing you to customize the design
    | of the emails. Or, you may simply stick with the Laravel defaults!
    |
    */

	'markdown' => [
		'theme' => 'default',

		'paths' => [
			resource_path('views/vendor/mail'),
		],
	],

];

Please or to participate in this conversation.