我目前正试图发送一封电子邮件,并附上一份pdf格式的表格作为附件。
我正在使用FPDM库填充我的pdf:https://github.com/codeshell/fpdm
这是我的代码:
$textes = $this->session->flashdata('textes');
$pdf->Load($textes, true);
$pdf->Merge();
//Génération
$pdf->Output("F",$_SERVER['DOCUMENT_ROOT'] . "filledPDF.pdf");
然后我试着发送一封邮件,里面有这个填好的pdf作为附件。以下是我的邮寄方式:
public function sendMailWithAttachment($siteURL,$htmlMessage, $object, $recipientMail, $title, $files, $filesnames, $cc = null)
{
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
$message_html = "
<html>
<head>
<title></title>
<meta charset=\"UTF-8\">
</head>
<body class=\"emb-font-stack-default\" bgcolor=\"#ffffff\">
<center class=\"wrapper\" style=\"background-color: #f6f9fb;width: 100%;min-width: 620px;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%\">
<table class=\"wrapper\" style=\"border-collapse: collapse;border-spacing: 0;background-color: #f6f9fb;width: 100%;min-width: 620px;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%;table-layout: fixed\">
<tbody>
<tr>
<td style=\"padding-top: 0;padding-bottom: 0;padding-left: 0;padding-right: 0;vertical-align: top\">
<center>
<table class=\"preheader\" style=\"border-collapse: collapse;border-spacing: 0;width: 100%\">
<tbody>
<tr>
<td class=\"title\" style=\"padding-top: 8px;padding-bottom: 8px;padding-left: 32px;padding-right: 32px;vertical-align: top;color: #adb3b9;font-family: sans-serif;font-size: 11px;line-height: 13px;width: 50%;text-align: left\">
</td>
</tr>
</tbody>
</table>
<table class=\"header\" style=\"border-collapse: collapse;border-spacing: 0;width: 100%\">
<tbody>
<tr>
<td class=\"logo\" style=\"padding-top: 16px;padding-bottom: 32px;padding-left: 0;padding-right: 0;vertical-align: top;color: #2f353e;font-family: sans-serif;font-size: 24px;line-height: 24px;letter-spacing: -0.02em\" align=\"center\">
<center>
<div id=\"emb-email-header\"><img style=\"border-left-width: 0;border-top-width: 0;border-bottom-width: 0;border-right-width: 0;-ms-interpolation-mode: bicubic;display: block;Margin-left: auto;Margin-right: auto;max-width: 484px\" src=\"$logo\" alt=\"Logo CFA\" width=\"323\" height=\"62\">
</div>
</center>
</td>
</tr>
</tbody>
</table>
</center>
</td>
</tr>
</tbody>
</table>
<table class=\"wrapper\" style=\"border-collapse: collapse;border-spacing: 0;background-color: #f6f9fb;width: 100%;min-width: 620px;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%;table-layout: fixed\">
<tbody>
<tr>
<td style=\"padding-top: 0;padding-bottom: 0;padding-left: 0;padding-right: 0;vertical-align: top\">
<center>
<table class=\"lightest\" style=\"border-collapse: collapse;border-spacing: 0;width: 100%\">
<tbody>
<tr>
<td style=\"padding-top: 0;padding-bottom: 0;padding-left: 0;padding-right: 0;vertical-align: top\" align=\"center\">
<table class=\"one-col\" style=\"border-collapse: collapse;border-spacing: 0;Margin-left: auto;Margin-right: auto;width: 900px\">
<tbody><tr>
<td class=\"column\" style=\"padding-top: 0;padding-bottom: 0;padding-left: 0;padding-right: 0;vertical-align: top;text-align: left\">
<div><div class=\"column-top\" style=\"font-size: 52px;line-height: 52px\"> </div></div>
<table class=\"contents\" style=\"border-collapse: collapse;border-spacing: 0;width: 100%\">
<tbody><tr>
<td class=\"padded\" style=\"padding-top: 0;padding-bottom: 0;padding-left: 90px;padding-right: 90px;vertical-align: top\">
<h1 style=\"Margin-top: 0;font-weight: 400;letter-spacing: -0.02em;font-family: sans-serif;font-size: 26px;line-height: 42px;Margin-bottom: 24px;color: #2e3b4e;text-align: center\">
**Title**
</h1>
<p style=\"Margin-top: 0;font-weight: 300;font-family: sans-serif;font-size: 16px;line-height: 26px;text-rendering: optimizeLegibility;Margin-bottom: 26px;color: #4e5561\">
$htmlMessage
<br><br> <i>**Name**</i>
<br><br><br>
<br>
</p>
</td>
</tr>
</tbody></table>
<table class=\"contents\" style=\"border-collapse: collapse;border-spacing: 0;width: 100%\">
<tbody><tr>
<td class=\"padded\" style=\"padding-top: 0;padding-bottom: 0;padding-left: 90px;padding-right: 90px;vertical-align: top\">
<div class=\"btn\" style=\"Margin-bottom: 26px;text-align: center\">
</td>
</tr>
</tbody></table>
<div class=\"column-bottom\" style=\"font-size: 26px;line-height: 26px\"> </div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody>
</table>
</center>
</td>
</tr>
</tbody>
</table>
<table class=\"wrapper\" style=\"border-collapse: collapse;border-spacing: 0;background-color: #f6f9fb;width: 100%;min-width: 620px;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%;table-layout: fixed\">
<tbody><tr>
<td style=\"padding-top: 0;padding-bottom: 0;padding-left: 0;padding-right: 0;vertical-align: top\">
<center>
<table class=\"footer\" style=\"border-collapse: collapse;border-spacing: 0;background-color: #1a232b;width: 100%\">
<tbody><tr>
<td class=\"shadow\" style=\"padding-top: 0;padding-bottom: 0;padding-left: 0;padding-right: 0;vertical-align: top;font-size: 2px;line-height: 2px;background-color: #07090b\" background=\"https://i3.createsend1.com/static/eb/master/05-slate/images/footer-shadow.gif\"> </td>
</tr>
<tr>
<td class=\"inner\" style=\"padding-top: 0px;padding-bottom: 0px;padding-left: 0;padding-right: 0;vertical-align: top\" background=\"https://i4.createsend1.com/static/eb/master/05-slate/images/footer.gif\" align=\"center\">
<table class=\"cols\" style=\"border-collapse: collapse;border-spacing: 0;width: 600px\">
<tbody><tr>
<td class=\"left\" style=\"padding-top: 0;padding-bottom: 22px;padding-left: 0;padding-right: 5px;vertical-align: top;color: #8e959c;font-family: sans-serif;font-size: 12px;line-height: 20px;text-align: left;width: 53%\">
<table class=\"social\" style=\"border-collapse: collapse;border-spacing: 0\">
<tbody><tr>
<td style=\"padding-top: 0;padding-bottom: 14px;padding-left: 0;padding-right: 0;vertical-align: top\">
<td class=\"spacer\" style=\"padding-top: 0;padding-bottom: 14px;padding-left: 0;padding-right: 0;vertical-align: top;font-size: 1px;line-height: 1px;width: 7px\"> </td>
<td style=\"padding-top: 0;padding-bottom: 14px;padding-left: 0;padding-right: 0;vertical-align: top\">
<td class=\"spacer\" style=\"padding-top: 0;padding-bottom: 14px;padding-left: 0;padding-right: 0;vertical-align: top;font-size: 1px;line-height: 1px;width: 7px\"> </td>
<td style=\"padding-top: 0;padding-bottom: 14px;padding-left: 0;padding-right: 0;vertical-align: top\">
</tr>
</tbody></table>
<div>**Name**<br>
<br>
**adress**<br>
**adresse comp**
</div>
</td>
<td class=\"right\" style=\"padding-top: 0;padding-bottom: 22px;padding-left: 5px;padding-right: 0;vertical-align: top;color: #8e959c;font-family: sans-serif;font-size: 12px;line-height: 20px;text-align: right;width: 47%\">
<div class=\"spacer\" style=\"font-size: 1px;line-height: 20px\"> </div>
<div>
<span class=\"block\">
<span>
<a style=\"color: #8e959c;text-decoration: none;transition: all 0.2s;\" href=\"#\">
**phone**
</a>
<br>
<a style=\"color: #8e959c;text-decoration: none;transition: all 0.2s;\" href=\"#\">
**email**
</a>
<br>
<br>
<a style=\"color: #8e959c;text-decoration: none;transition: all 0.2s;\" href=\"www.website.com\">
**website**
</a>
</span>
</span>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</center>
</td>
</tr>
</tbody></table>
</center>
</body>
</html>
";
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = '=?utf-8?B?'.base64_encode(Subject).'?=';
//=========
//=====Création du header de l'e-mail.
$header = "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
$header.= utf8_decode("From: \"". **Name** ."\" <".**email**.">".$passage_ligne);
$header.= "Reply-to: \"".**Name**."\" <".**email**.">".$passage_ligne;
/*
if($cc != null) {
$header.= "Cc: " .$cc .$passage_ligne;
}
*/
//==========
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"utf8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
for($i=0; $i<count($files);$i++){
$filesize = filesize($files[$i]);
$handle = fopen($files[$i],"r");
$content = fread($handle,$filesize);
fclose($handle);
$content = chunk_split(base64_encode($content));
//==========Ajout des fichiers joints
$message .= "--" . $boundary . $passage_ligne;
$message .= "Content-Type: application/octet-stream; name=\"" . $filesnames[$i] . "\"" . $passage_ligne;
$message .= "Content-Transfer-Encoding: base64" . $passage_ligne;
$message .= "Content-Disposition: attachment; filename=\"".$filesnames[$i]."\"".$passage_ligne . $passage_ligne;
$message .= $content . $passage_ligne;
}
//Fin du mail
$message .= "--" . $boundary . "--";
//=====Envoi de l'e-mail.
return mail($mail,$sujet,$message,$header);
//==========
这种“电子邮件发送”功能在普通PDF中运行良好,但在我的PDF中,所有文本和字段都会消失。我想知道是有办法还是不可能?
此外,我正在使用PHP 7和Code Igniter 3。
好吧,正如@Magnus Eriksson所建议的,我试着用PHPMailer来实现我的邮件功能。这比基本的邮件功能简单得多,但这并不能解决我的问题。我发现在浏览器中打开它并不会显示字段,但当我从浏览器下载它时,它们仍然在这里。所以这解决了我的问题,谢谢大家!
尝试发送带有pdf附件的电子邮件,尝试使用swickmailer,但没有成功,此代码使用zip但不使用PDF:( 邮件被发送罚款,我得到的邮件:但附件是不存在的,在meial有所有的bas64编码在电子邮件像: onatatent-Type: Application/octet-stream; name="media.pdf"Content-transver-Encode: base 64 Con
问题内容: 我想编辑以下代码并发送带有附件的电子邮件。附件是一个pdf文件,在Linux环境中位于/home/myuser/sample.pdf下。我应该在下面更改什么? 问题答案: 在这种情况下,您使用电子邮件包创建了一条消息- 然后发送消息。 这里有几个示例-http: //docs.python.org/library/email- examples.html 更新 由于上述原因,更新链接会
我需要在我的应用程序中集成邮件服务。我的应用程序应该发送电子邮件,其中必须附上。pdf文件(详细报告)。PDF文件现在位于远程服务器上。 有人能帮我理解如何在黑莓手机上发送带有pdf附件的邮件吗?如果实施是可行的,那么我将如何实施? 以下是我从Blackberry知识库论坛获得的用Blackberry发送邮件的链接 如何-创建附件 如何创建和发送消息
问题内容: 我似乎找不到我编写的应该发送带有附件的电子邮件的php函数的问题。我已经为此苦苦挣扎了一段时间了。 编辑 问题是邮件的消息与文件混合在一起并作为附件发送。 问题答案: Artefacto让我更加关注输出,并且找到了解决方法:
问题内容: 我找到了这个库,并设法以空电子邮件发送附件,但没有将文本和附件组合在一起。 https://github.com/sloonz/go-mime-message 如何做呢? 问题答案: 我最终自己实现了它:https : //github.com/scorredoira/email 用法很简单:
问题内容: 我正在尝试在带有附件的codeigniter上发送电子邮件。 我总是成功收到电子邮件。但是,我从未收到带有附件的文件。以下是代码,非常感谢所有评论。 问题答案: $ this- >电子邮件-> attach() 使您可以发送附件。将文件路径/名称放在第一个参数中。注意:使用文件路径,而不是URL。对于多个附件,请多次使用该功能。例如: