自动创建文件并通过wp_mail()发送

时间:2018-01-09 作者:Rishabh

我在页面加载中获取动态内容,并使用wp\\u mail()通过邮件发送。现在,所有内容都在电子邮件的正文部分,但我希望它存储在。文档(MS word)文件,然后将该文件作为附件发送。

我可以通过wp\\u mail()发送附件。但我没有得到任何关于如何自动创建文件并将所有html内容存储在文件中的解决方案。我在谷歌上搜索了很多,但没有找到任何有用的东西。在wordpress中有没有可能做到这一点?

2 个回复
SO网友:HU ist Sebastian

无法帮助您创建。文档文件,因为我从来没有这样做过。但是,如果您设法将编码文件转换为字符串,则可以使用Wordpress PHP Mailer实例,如下所示:

function send_my_mail_with_attachment($from,$to,$subject,$body,$attachmentstring=""){
        global $phpmailer;
        // (Re)create it, if it\'s gone missing
        if ( ! ( $phpmailer instanceof PHPMailer ) ) {
            require_once ABSPATH . WPINC . \'/class-phpmailer.php\';
            require_once ABSPATH . WPINC . \'/class-smtp.php\';
            $phpmailer = new PHPMailer( true );
        }
        $phpmailer->CharSet = \'UTF-8\';
        $phpmailer->ClearAllRecipients();
        $phpmailer->ClearAttachments();
        $phpmailer->ClearCustomHeaders();
        $phpmailer->ClearReplyTos();
        $fromaddress=$from;
        $phpmailer->setFrom($fromaddress);
        $phpmailer->Sender = $phpmailer->From;
        $phpmailer->addAddress($to);
        $phpmailer->isHTML(true);   // Set email format to HTML
        $phpmailer->Subject = $subject;
        $phpmailer->Body    = $body;
        if($attachmentstring){
               $phpmailer->AddStringAttachment($attachmentstring,\'my_attachment.doc\');
        }
        $rueckgabe = $phpmailer->Send(); 
        return $rueckgabe;
}
您可以了解有关PHPMailer的更多信息here

SO网友:Sid

如果要在其他人的计算机上打开文档,最好以PDF格式发送,这样可以保持文档的样式和字体。

如果您同意,您可以使用FPDF 创建包含动态内容的PDF文件。

下面是一个代码示例:

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(\'Arial\',\'B\',14);
$pdf->Rect(10, 10, 190, 135, \'D\');
$pdf->Image(\'http://example.com/img/logo.jpg\',12,12,0,0,\'JPG\');
$pdf->Cell(78);
$pdf->SetTextColor(255,0,0);
$pdf->Cell(30,10,\'Document Title\');
$pdf->Ln(5);
$op = $pdf->Output();
您可以在服务器上生成并保存pdf,然后使用@kuchenundkakao建议的方法将其附加到电子邮件中。

结束

相关推荐

Sending email to all users

向大量用户发送电子邮件的最佳做法是什么?我正在为一个协会的网站开发一个插件,需要做的事情之一是能够向协会的所有成员(或特定子集)发送电子邮件。这将是一件相当罕见的事情,但一旦发生,预计将发送500至1000封电子邮件。现在,我可以想出几个选择:分别发送每封电子邮件,每封50/100块发送一封电子邮件,为每个人发送一封电子邮件。选项1很好,因为我可以对电子邮件进行个性化设置(亲爱的姓名……),然而,对于这些情况,我们可以使用普通电子邮件。每个选项的缺点是什么</你能给我一些其他的策略建议吗?我只是想用