I'm trying to set a default sender to all messages in Swift Mailer 4.3.0, but couldn't find a proper solution. I want to avoid using ->setFrom() in every message, since it'll be a future headache. I could use a constant for that, but I was looking for a more elegant solution.
$message = Swift_Message::newInstance()
->setSubject('subject')
->setFrom(array('[email protected]' => 'Sender'))
->setTo(array('[email protected]'))
->setBody('Message');
Thanks!
You can't.
As far as I know, you can't omit this parameter.
A
From:address is required and is set with thesetFrom()method of the message.From:addresses specify who actually wrote the email, and usually who sent it.
This is maybe the best solution:
->setFrom(MyClass::FROM_EMAIL);
Once thing you can try, is to create an instance once in your application, and clone it when you want to send a new mail without re-defining the from part:
// somewhere early in your app
$message = Swift_Message::newInstance()
->setFrom(array('[email protected]' => 'Sender'));
And then, somewhere else:
$newMessage = clone $message;
$newMessage
->setSubject('subject')
->setTo(array('[email protected]'))
->setBody('Message')
->send();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With