I have this email configurated in Laravel with SMTP. It works well.
I want some users to be able to send emails with their own e-mail address.
I used to do this:
Mail::to($receiver)->from("myconfiguredSTMPemail@mycompany.com")->send(new email());
I do this now:
Mail::to($receiver)->from($email_given_by_the_user)->send(new email());
This works fine but I don't like that because I am actually sending them from my e-mail, not from the email given by the user, even if the end user sees it as $email_given_by_the_user
. I would like to send it as myconfiguredSTMPemail@mycompany.com
but when the user wants to reply, it replies to $email_given_by_the_user
. Is there any way to do this?
In Laravel 5.4 Mailables, the replyTo, subject, cc, bcc and others can be set inside the mailable in the build method. This is also true for the to which can also be set on the Mail facade.
So you can do it somelike this:
$attributes = ['replyTo' => $email_given_by_the_user];
Mail::to($receiver)->from("myconfiguredSTMPemail@mycompany.com")->send(new email($attributes));
and email class
class email extends Mailable
{
public $attributes;
public function __construct($attributes = null)
{
$this->attributes = $attributes;
}
public function build()
{
if(!empty($this->attributes['replyTo']))
$this->replyTo($this->attributes['replyTo']);
...
}
}