Php 扩展swiftmailer使用smtp服务器
我有一个带有一些smtp设置的配置数组。 我正在寻找一种方法来扩展Swiftmailer以自动填写这些详细信息 我找不到任何关于扩展swiftmailer的信息。我确实找到了一些关于插件的信息,但是这些swiftmailer现有的插件不会告诉我任何事情Php 扩展swiftmailer使用smtp服务器,php,oop,swiftmailer,Php,Oop,Swiftmailer,我有一个带有一些smtp设置的配置数组。 我正在寻找一种方法来扩展Swiftmailer以自动填写这些详细信息 我找不到任何关于扩展swiftmailer的信息。我确实找到了一些关于插件的信息,但是这些swiftmailer现有的插件不会告诉我任何事情 // automatic use smtp.domain.com, username, password ?? $transport = Swift_MailTransport::newInstance(); $mailer = Swift_Ma
// automatic use smtp.domain.com, username, password ??
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Test')
->setFrom(array('mail@domain.com' => 'from user'))
->setTo(array('mail@domain.com' => 'from user'))
->setBody('Body')
;
$result = $mailer->send($message);
有人能告诉我怎么做吗?您可以像这样将所有内容包装到服务类中:
class MyMailerAssistant
{
/**
* Service method to fastly send a message
* @param $subject
* @param $body
*/
public static function sendMessage($subject, $body)
{
// automatic use smtp.domain.com, username, password ??
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Test')
->setSubject($subject)
->setFrom(array('mail@domain.com' => 'from user'))
->setTo(array('mail@domain.com' => 'from user'))
->setBody($body);
$result = $mailer->send($message);
}
}
并简单地这样称呼它:
MyMailerAssistant::sendMessage('Hello', 'This is the email content');
无论如何,我强烈反对您将配置插入到方法中,我总是从模块化外部配置文件加载它。我不明白您为什么要扩展SwiftMailer以满足该要求。创建一个处理准备工作的类要容易得多
class SwiftMailerPreparator {
private $mailer;
public __construct(Swift_Mailer $mailer) {
$this->mailer = $mailer;
}
public function prepare(array $settings) {
// do your thing here
}
}
此外,由于SwiftMailer是开源的,您只需查看代码即可了解其工作原理