I have set the from address in config/mail.php. but in mail, from address is smtp username. Is that possible to change the from address without changing smtp credentials.
.env File
MAIL_DRIVER=smtp
MAIL_HOST=HOST_NAME
MAIL_PORT=PORT
MAIL_USERNAME=USERNAME
MAIL_PASSWORD=PASSWORD
MAIL_FROM_ADDRESS=FROM_EMAIL_ADDRESS
MAIL_FROM_NAME=YOUR_NAME
config/mail.php
/*
|--------------------------------------------------------------------------
| 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' => null, 'name' => null],
'from' => [
'address' => env('MAIL_FROM_ADDRESS', null),
'name' => env('MAIL_FROM_NAME', null)
],
You should try this:
Just only change in config/mail.php in from array like
'from' => [
'address' => env('MAIL_FROM_ADDRESS', null),
'name' => env('MAIL_FROM_NAME', null)
],
After clear the cache and try:
php artisan cache:clear
php artisan config:cache
php artisan cache:clear
Related
i have problem with register new user when i register new user this error shows up
"Swift_TransportException
Connection could not be established with host mailhog :stream_socket_client(): php_network_getaddresses: getaddrinfo failed: No such host is known."
My .env file looks like :
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=xxx
MAIL_PASSWORD=xxx
MAIL_ENCRYPTION=null
my mail.php configuration looks like:
<?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', 'mailhog'),
'port' => env('MAIL_PORT', 1025),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'auth_mode' => null,
],
'ses' => [
'transport' => 'ses',
],
'mailgun' => [
'transport' => 'mailgun',
],
'postmark' => [
'transport' => 'postmark',
],
'sendmail' => [
'transport' => 'sendmail',
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -t -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', 'hello#example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
/*
|--------------------------------------------------------------------------
| 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'),
],
],
];
you have a missing variable you need to add the mail from:
MAIL_FROM_ADDRESS=myemail#domain.com
I am trying to send mail via the mailgun API from my controller but the mail is not reaching mailgun and I am not getting any error messages/logs.
This is in my .env:
MAIL_MAILER=mailgun
MAILGUN_DOMAIN=subdomain.domain.ca
MAILGUN_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxx
This is in my services.php:
<?php
return [
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third-party services such
| as Mailgun, Postmark, AWS, and more. This file provides the de facto
| location for this type of information, allowing packages to have
| a conventional file to locate the various service credentials.
|
*/
'mailgun' => [
'domain' => env('subdomain.domain.ca'),
'secret' => env('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'),
],
'postmark' => [
'token' => env('POSTMARK_TOKEN'),
],
'ses' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
],
];
This is in my mail.php:
<?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', 'mailgun'),
/*
|--------------------------------------------------------------------------
| 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"
|
*/
'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,
'auth_mode' => null,
],
'ses' => [
'transport' => 'ses',
],
'mailgun' => [
'transport' => 'mailgun',
],
'postmark' => [
'transport' => 'postmark',
],
'sendmail' => [
'transport' => 'sendmail',
'path' => '/usr/sbin/sendmail -bs',
],
'log' => [
'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL'),
],
'array' => [
'transport' => 'array',
],
],
/*
|--------------------------------------------------------------------------
| 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', 'info#domain.ca'),
'name' => env('MAIL_FROM_NAME', 'From name'),
],
/*
|--------------------------------------------------------------------------
| 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'),
],
],
];
This is how I am sending the mail in my controller:
Mail::send('emailtemplates.trackeremail', $data, function($message)use($data, $pdf) {
$message->to($data["toaddress"])
->cc($data["ccaddress"])
->subject($data["title"])
->attachData($pdf->output(), "PDFName.pdf");
});
This is working when I send to mailgun via SMTP in my local environment but I am unfortunately limited to shared hosting that does not allow 3rd party SMTP and I need to switch to the API method for production. I have gone through many tutorials and questions on this site (and others) related but nothing has solved my issue.
I always run php artisan config:clear after any kind of .env change.
Is there anything else that I can be doing to even get an error message or further debug this? Any help would be appreciated.
It might possibly be the port, host, encryption, and mail from:
Keep these as is in your .env:
MAIL_MAILER=mailgun
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Enter these in your .env:
MAIL_FROM_NAME=YourNameHere
MAIL_FROM_ADDRESS=enter#theemail.com
MAIL_FROM=enter#theemail.com
MAILGUN_DOMAIN=subdomain.domain.ca
MAILGUN_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxx
Update services.php with:
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
],
Update mail.php with adding:
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'port' => env('MAIL_PORT', 587),
After going over this with A2 Hosting's technical support it turns out that this is just not possible with their shared hosting, I was informed that "Mailgun only supports the standard SMTP ports, so it is not supported on our shared server".
I want to send email using smtp with my laravel 8 project. I have an example project in which this works. Using this configuration in my current project is unsuccessful.
I am unable to use the example 1 one 1 because the folderstructure is different. My example uses the default laravel folder structure, my current project has a modular layout in which each folder represents an entity that has its own controllers, models etc. I have been on it for a while and would appreciate outside advice in order to get it working.
The 'allow less secure apps' option is enabled in gmail.
The content of my test_mail.blade.php file is just some basic html.
Mail function is called from inside update function for convenience.
Frontend::email.test_mail , this points to a view that is in the same entity folder.
The example uses: /folder/subfolder/view, the rest of it is the same as the example.
$data = array("name"=>"testname", "employee_nr"=>"010" );
$subject = 'test_message';
$to_email = 'realtargetaddress#gmail.com';
Mail::send('Frontend::email.test_mail',$data, function($message) use( $to_email,$subject)
{
$message->to($to_email)->subject($subject);
$message->from($to_email,$subject);
});
configuration of .env file. (exact copy from example)
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465 # 587 for tls - 456 for ssl
MAIL_FROM_ADDRESS=some_address#gmail.com
MAIL_USERNAME=some_address#gmail.com
MAIL_PASSWORD=**********
MAIL_ENCRYPTION=ssl # tls or ssl
MAIL_FROM_NAME="${APP_NAME}"
config/mail.php (also a exact copy from my example)
'driver' => env('MAIL_MAILER', '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'),
'sendmail' => '/usr/sbin/sendmail -bs',
'from' => [
'address' => env('MAIL_FROM_ADDRESS',
'hello#example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
'log_channel' => env('MAIL_LOG_CHANNEL'),
Mail.php extends Facade
This class is in the Illuminate\Support\Facades namespace.
My example uses mail.manager in the getFacadeAccessor() method, which fails in my current project.
Using mailer instead of mail.manager does not produce errors but also does not work.
console commands that used after making changes to .env
php artisan config:clear
php artisan config:cache
php artisan cache:clear
edit The error that this gives me is:
Unable to resolve NULL driver for [Illuminate\Mail\TransportManager].
I searched with that but did not find a fix.
solution I was adviced to add the following code to mail.php, make sure to add it on top and to run the console commands. After i did this the mail function worked for me.
'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,
'auth_mode' => null,
],
],
I want to override the default mail settings in config/mail.php or .env which Laravel uses by default. I'm setting up the dynamic configs (coming from DB) but email when sent is still going from the "from" address set in the config/mail.php or .env.
Any suggestion for the above words??
Here's the part of the code I'm using:
$mailConfigs = [
'driver' => 'smtp',
'port' => $dbSettings->smtp_port,
'host' => $dbSettings->smtp_host,
'encryption' => $dbSettings->smtp_encryption,
'username' => $dbSettings->smtp_email,
'password' => $dbSettings->smtp_password,
'sendmail' => '/usr/sbin/sendmail -bs',
'from' => [
'address' => $dbSettings->smtp_email,
'name' => 'XXXXX'
],
];
Config::set('mail', $mailConfigs);
// print_r(Config::get('mail'));
// Config here are reflected correctly if printed but when email is sent, it again uses the "from" address which is setup in .env and totally ignores the one setup above.
$res = Mail::send([], $data, function ($message) use($mailConfigs)
{
// email body, etc...
});
I'm trying to test some emails within a laravel 4.2 app and have configured mail.php to use mailtrap
here's my mail.php config:
return array(
'driver' => 'smtp',
'host' => 'smtp.mailtrap.io',
'port' => 2525,
'from' => array('address' => 'website#domain.co.uk', 'name'=>'Domain'),
'encryption' => 'null',
'username' => '12345XX',
'password' => '12345XX',
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
);
I'm trying to use this within a development environment with a vagrant box (homestead)
I'm using a basic test script as follows to send a test email:
$data = array(
'activationCode' => '123456789',
'id' => 27,
'user' => [
'id'=>27,
'first_name'=>'TEST USER',
'last_name'=>'LAST NAME',
'email'=>'test#domain.org.uk'
]
);
$firstResult = Mail::send('emails.auth.accessPending', $data, function ($message) {
$message
->to('email#domain.com')
->subject('website registration');
});
I get a NULL response and nothing appears in the mailtrap inbox.
What am I missing in either my configuration or script to get the app to send test emails?
Thanks
Can you check if you have .env file those
MAIL_HOST=mailtrap.io
_PORT=2525
MAIL_USERNAME=your username
MAIL_PASSWORD=your pass
MAIL_ENCRYPTION=null
Ok - it was working - sort of. The reason there was no output because the mail config file for local development was set to pretend
Revealed by a quick check of the log file
Ta