在 Fat Free Framework 中发送多部分文本和 html 电子邮件

Sending multipart text and html email in Fat Free Framework

目前我正在使用以下代码在 Fat Free Framework 中发送电子邮件:

$smtp = new SMTP ( $f3->get('MAILHOST'), $f3->get('MAILPORT'), $f3->get('MAILPROTOCOL'), $f3->get('MAILUSER'), $f3->get('MAILPW') );
        $smtp->set('Content-type', 'text/html; charset=UTF-8'); 
        $smtp->set('Errors-to', '<$my_mail_address>');
        $smtp->set('To', "<$my_mail_address>");
        $smtp->set('From', '"$my_mailer_name" <$my_mail_address>');
        $smtp->set('Subject', "$subject");
        $smtp->set('Date', date("r"));
        $smtp->set('Message-Id',generateMessageID());
$smtp->send(Template::instance()->render('emails/'.$mailTemplate.'.html'));

它就像一个魅力。但我想在这封电子邮件中添加一个文本版本。

有没有办法在 Fat Free Framework smtp 插件中做到这一点? 如果是这样,我应该怎么做? 如果没有,我还应该如何在 F3 中执行此操作?

实际上它可以发送一个multiplat 文本+ html 邮件。 SMTP class 只是一个协议实现,因此此时它可能感觉有点简单。你基本上需要像这样用多部分准备你的邮件正文:

$text = 'Hello world.';
$html = 'Hello <b>world</b>';

$smtp = new \SMTP();
$hash=uniqid(NULL,TRUE);
$smtp->set('From', 'info@domain.com');
$smtp->set('To', 'info@domain.com');
$smtp->set('Content-Type', 'multipart/alternative; boundary="'.$hash.'"');
$smtp->set('Subject', 'Multipart test');

$eol="\r\n";
$body  = '--'.$hash.$eol;
$body .= 'Content-Type: text/plain; charset=UTF-8'.$eol;
$body .= $text.$eol.$eol;
$body .= '--'.$hash.$eol;
$body .= 'Content-Type: text/html; charset=UTF-8'.$eol.$eol;
$body .= $html.$eol;

$smtp->send($body,true);