Laravel with Postfix - laravel

I was using gsuite to send mail from laravel, config on .env was:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=account#gmail.com
MAIL_PASSWORD=password123
MAIL_ENCRYPTION=ssl
It is working ok, but now i installed postfix as a send-only to send newsletters and tested via command line like this:
echo "Teste message" | mail -s "Title Message" any#email.com
And it worked ok, but i cant figure on how to use it on laravel, what should be the configuration? I tried this:
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
But it return:
Swift_TransportException
Expected response code 220 but got code "", with message ""

Related

Expected response code 250 but got code "550", with message "550-Requested action not taken: mailbox unavailable 550 Sender address has null MX

P.S. I am doing all of this testing on my local machine.I have tested my smtp settings with this online website https://www.smtper.net/. Each one of below services are sending the emails.
I am trying to setup email confirmation system for my Laravel application and keep on getting this error with email created through cpanel.
I have tried using Gmail/mailtrap/mailosaur for testing with these settings and everything was working fine:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=email#gmail.com
MAIL_PASSWORD='password'
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=email#gmail.com
MAIL_FROM_NAME="${APP_NAME}"
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=ab723b95067210
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_MAILER=smtp
MAIL_HOST=mailosaur.net
MAIL_PORT=2525
MAIL_USERNAME=hgyqqqgn#mailosaur.net
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="${APP_NAME}"
but now when I am using my custom email i am getting this error in my logs file:
[2021-12-26 09:17:53] local.ERROR: Expected response code 250 but got code "550", with message "550-Requested action not taken: mailbox unavailable
550 Sender address has null MX
" {"exception":"[object] (Swift_TransportException(code: 550): Expected response code 250 but got code "550", with message "550-Requested action not taken: mailbox unavailable
550 Sender address has null MX
MAIL_MAILER=smtp
MAIL_HOST=smtp.ionos.com
MAIL_PORT=587
MAIL_USERNAME=noreply#domain.co.uk
MAIL_PASSWORD='password'
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply#domain.co.uk
MAIL_FROM_NAME="${APP_NAME}"
"mailbox unavailable 550 Sender address has null MX".
It seems your smtp server can't find the IP address of the receiving mail server.
Are you sending to a valid email address?
Have you set up a DNS MX record?
This configuration is working well on my environment. Please try like this.
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=<your_username_goes_here>
MAIL_PASSWORD=<your_password_goes_here>
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=<your_email_goes_here>
MAIL_FROM_NAME="${APP_NAME}"`
Make sure that the sender email is valid. By that I mean if the provider of your sender email exist.
Example of invalide email: user#exemple.com

Emails sent using SMTP Gmail don't get delivered

I'm trying to send mails from my webserver using Laravel 6 like this:
Mail::send('feedback', ['email' => $email, 'text' => $text], function($message) use ($receiver)
{
$message->to($receiver, 'The receiver')->subject('New Feedback');
});
I added my login information into my .env file according to this page from google:
https://support.google.com/mail/answer/7126229?hl=de
my .env file:
MAIL_DRIVER=sendmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxx#gmail.com
MAIL_PASSWORD=my_gmail_login_password
MAIL_ENCRYPTION=tls
but my mails don't get sent/delivered. I don't get any error message or anything logged. Everything seems to be working, but for some reason they don't get delivered.
I tried it with enabling insecure apps in my gmail settings and using my gmail password and also with creating an app password and using the app password. Both options didn't work.
Does someone have an idea what I'm doing wrong?
Try changing .env variables as below:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
or
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=ssl
You should set the .env attribute as below
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
Give it a try.

send email in laravel 5.4

I Want to send reset password email in laravel,with default laravel auth
first login in mailtrap.io and get username and password,then edit env file such as this:
MAIL_DRIVER=sendmail
MAIL_HOST=mail.moallemmarket.com
MAIL_PORT=587
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
and edit mail.php file such as env,Now I receive We have e-mailed your password reset link! message But don't receive any email in my inbox,I changed ports to 25 ans 2525 But result is same.How I can Solved this problem?
I had no problem coding
The problem with the non-activation of the email was in the cpanel that was solved by sending the ticket
With mailtrap, I use these vars in my .env file:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null

Error occurring in sending mail for Forget password

I have set up laravel 5.6 on server. When I try to use Forget Password, I am gettting error after enter email id:
Class Swift_AddressEncoder_IdnAddressEncoder does not exist
actually, it was working find two days before but now i dont know what happen...I have done thing in it.
below connection in .env:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=SG.EcuUbtbhSbq1IAh**1tPQg.uFah8Jw**7lh10wGpA_CPU01ySmAC26HFylz_BFI
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Your Trade Log"
MAIL_FROM_ADDRESS=support#y**r**r*a**.com
this is live link for Reset Password: YourTradeLog

Laravel 5 send mail in contact form

I use Laravel 5.1 and want to send the admin of the page a mail with the content of a contact form.
In my .env file I added the following lines:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=admintest#gmail.com
MAIL_PASSWORD=adminpassword
MAIL_ENCRYPTION=tls
In my controller I have the following:
Mail::send('Site::email', ['contactObject' => $contactObject], function ($message) use ($contactObject) {
$message->from($contactObject->email, $contactObject->vorname)->subject('New contact!');
$message->to('admintest#gmail.com');
});
$contactObject == contains the form which was filled out in the form from the user
Desired result:
When admintest#gmail.com receive a email, the sender of the mail should be $contactObject->email
Actual result:
When admintest#gmail.com receive a email, the sender of the mail is admintest#gmail.com
Any ideas what goes wrong? Thank you
Try This:
In Live server you have no need to configure any type of mail service.
You have to just use this:
MAIL_DRIVER=mail
AND remove this code:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=admintest#gmail.com
MAIL_PASSWORD=adminpassword
MAIL_ENCRYPTION=tls
You have to just use in .env file:
MAIL_DRIVER=mail
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xyz#gmail.com
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=tls
After change in .env file, restart service, or use command php artisan config:cache and php artisan config:clear.
Have you configured the global from address in the config?
Specifically here: https://github.com/laravel/laravel/blob/master/config/mail.php#L49
Chances are that you've set that and it's just using that, making these values blank should let you override it.
Failing that, because you're using Gmail to send an email to Gmail, it's likely not letting you spoof the from and is indeed a security feature on their end.

Resources