php 發郵件附件pdf,php – 使用TCPDF發送電子郵件附件 | 碼農網

我有一個簡單的課程申請表,填寫完成后,會向申請人發送一封電子郵件,并附上他選擇作為pdf附件的課程的費用報價.

我正在使用TCPDF并使用會話變量將數據從表單傳遞到庫.內容采用 html 格式.

生成PDF并根據需要作為附件發送.問題是它是空白的..只有頁眉和頁腳在文檔中.在 linux 中尤其如此.在Windows中,pdf文檔在下載時按預期生成.但是,在下載文檔之前單擊“視圖”時,只顯示頁眉和頁腳.

這是我的代碼.請有人幫忙.謝謝.

session_start();

require_once('../config/lang/eng.php');

require_once('../tcpdf.php');

// create new PDF document

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information

$pdf->SetCreator(PDF_CREATOR);

$pdf->SetAuthor('Josiah Njuki');

$pdf->SetTitle('Quotation Request');

$pdf->SetSubject('TCPDF Tutorial');

$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data

$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, '', PDF_HEADER_STRING);

// set header and footer fonts

$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));

$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font

$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins

$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);

$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks

$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor

$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings

$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// set default font subsetting mode

$pdf->setFontSubsetting(true);

// Set font

// dejavusans is a UTF-8 Unicode font, if you only need to

// print standard ASCII chars, you can use core fonts like

// helvetica or times to reduce file size.

$pdf->SetFont('dejavusans', '', 14, '', true);

// Add a page

// This method has several options, check the source code documentation for more information.

$pdf->AddPage();

// Set some content to print

$html = '' . $_SESSION['content'] . '';

$html .= <<

EOD;

// Print text using writeHTMLCell()

$pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);

// ---------------------------------------------------------

// Close and output PDF document

// This method has several options, check the source code documentation for more information.

//$pdf->Output('example_001.pdf', 'I');

$doc = $pdf->Output('quotation.pdf', 'S');

//define the receiver of the email

$name = "Name goes here";

$email = "jnjuki103@gmail.com";

$to = "$name ";

$from = "John-Smith ";

$subject = "Here is your attachment";

$fileatt = $pdf->Output('quotation.pdf', 'S');

//$fileatt = "./test.pdf";

$fileatttype = "application/pdf";

$fileattname = "newname.pdf";

$headers = "From: $from";

$file = fopen($fileatt, 'rb');

$data = fread($file, filesize($fileatt));

fclose($file);

$semi_rand = md5(time());

$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

$headers .= "\nMIME-Version: 1.0\n" .

"Content-Type: multipart/mixed;\n" .

" boundary=\"{$mime_boundary}\"";

$message = "This is a multi-part message in MIME format.\n\n" .

"-{$mime_boundary}\n" .

"Content-Type: text/plain; charset=\"iso-8859-1\n" .

"Content-Transfer-Encoding: 7bit\n\n" .

$message .= "\n\n";

$data = chunk_split(base64_encode($data));

$message .= "–{$mime_boundary}\n" .

"Content-Type: {$fileatttype};\n" .

" name=\"{$fileattname}\"\n" .

"Content-Disposition: attachment;\n" .

" filename=\"{$fileattname}\"\n" .

"Content-Transfer-Encoding: base64\n\n" .

$data . "\n\n" .

"-{$mime_boundary}-\n";

if (mail($to, $subject, $message, $headers)) {

echo "The email was sent.";

} else {

echo "There was an error sending the mail.";

}

//============================================================+

// END OF FILE

//============================================================+

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272703.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272703.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272703.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫同步傳輸軟件

Navicat轉載于:https://www.cnblogs.com/jizl/p/4995959.html

DoNet 高效開發必備開發工具

工欲善其事&#xff0c;必先利其器&#xff0c;沒有好的工具&#xff0c;怎么能高效的開發出高質量的代碼呢&#xff1f;本文為 ASP.NET 開發者介紹一些高效實用的工具&#xff0c;包括 SQL 管理&#xff0c;VS插件&#xff0c;內存管理&#xff0c;診斷工具等&#xff0c;涉及…

php eval 語法錯誤,PHP eval和捕獲錯誤(盡可能多)

我找到了一個很好的替代方案/答案 .首先&#xff0c;讓我首先說當我設置error_reporting(E_ALL)時&#xff0c;nikic的建議有效;通知顯示在PHP輸出中&#xff0c;并且由于OB&#xff0c;它們可以被捕獲 .接下來&#xff0c;我發現了這個非常有用的代碼&#xff1a;/*** Check t…

防止表單重復提交的解決方案整理

用戶在操作表單Post數據時往往會出現表單數據重復提交的問題&#xff0c;尤其在Web開發中此類問題比較常見。刷新頁面&#xff0c;后退操作以前的頁面&#xff0c;單機多次按鈕都會導致數據重復提交。此類問題是因為瀏覽器重復提交HTTP請求導致。下面列出了四種比較常用的解決方…

免費字典api ,查詢漢字完整信息

最大最全的新華漢語詞典&#xff0c;字典api根據接口列表返回的漢字id&#xff0c;查詢漢字完整信息。 接口名稱&#xff1a;字典api 接口平臺&#xff1a;第三方api 接口地址&#xff1a;http://v.juhe.cn/xhzd/queryid 支持格式&#xff1a;json/xml 請求方式&#xff1a;htt…

python正則去除換行符,關于python:用于刪除換行符的正則表達式

我是Python的新手&#xff0c;我遇到了正則表達式問題。 我正在嘗試刪除文本文件中每行末尾的換行符&#xff0c;但前提是它跟在小寫字母后面&#xff0c;即[a-z]。 如果該行的結尾以小寫字母結尾&#xff0c;我想用空格替換換行符/換行符。這是我到目前為止所得到的&#xff1…

收集一些程序員勵志經典名言

1、作為一個真正的程序員&#xff0c;首先應該尊重編程&#xff0c;熱愛你所寫下的程序&#xff0c;他是你的伙伴&#xff0c;而不是工具。2、程序員可以讓步&#xff0c;卻不可以退縮&#xff0c;可以羞澀&#xff0c;卻不可以軟弱&#xff0c;總之&#xff0c;程序員必須是勇…

Android develop 國際化

轉自別人的一片文章&#xff0c;出處以找不到了&#xff0c;覺得寫得不錯&#xff0c;記錄一下 一、概念 1.Internationalization(I18N) 國際化 使得App在不改的源碼、資源文件的情況下&#xff0c;能夠適應各國、各文化、各語言 是L10N的基礎 2.Localization(L10N) 本地化 為A…

php留言板記錄ip,如何用php程序記錄來訪IP

如何用php程序記錄來訪IP關注:226 答案:4 手機版解決時間 2021-02-16 00:05提問者失夜久伴你2021-02-15 01:22如何用php程序獲取來訪IP&#xff0c;然后保存在txt文件中,并且只保留最新的30個數據.最佳答案二級知識專家追尋☆①秒方向2021-02-15 02:19有一個全局的變量&#…

【基礎】jquery全選、反選、全不選代碼

1、JS代碼function ($) {//全選 反選 全不選$("#selAll").click(function () {$(".lists :checkbox").not(:disabled).prop("checked", true);});$("#unSelAll").click(function () {$(".lists :checkbox").not(:disabled).…

oracle 11g重新安裝配置,Oracle 11g數據庫安裝和卸載教程

Oracle11g的安裝教程同時解壓縮兩個zip文件&#xff0c;生成一個database文件夾&#xff0c;進入到database文件夾&#xff0c;點擊setup去掉安全更新的選項&#xff0c;直接下一步選擇創建和配置數據庫&#xff0c;點擊下一步選擇服務器類&#xff0c;點擊下一步選擇單例數據庫…

C語言中strdup函數使用方法

頭文件&#xff1a;#include <string.h> 定義函數&#xff1a;char * strdup(const char *s); 函數說明&#xff1a;strdup()會先用malloc()配置與參數s 字符串相同的空間大小&#xff0c;然后將參數s 字符串的內容復制到該內存地址&#xff0c;然后把該地址返回。該地址…

高級程序員和低級程序員的區別

低級程序員認為自己與高級程序員的區別, 主要是高級程序員任何功能都能編碼實現, 編碼速度快, 代碼無 bug. 正如一慣的那樣, 低級程序員之所以低級, 正是因為他們勉強能看到(或者根本看不到)事物的表象而看不到本質. 所以, 低級程序員總結出的一切東西, 你都可以大膽的忽略。所…

oracle中的tx鎖影響查詢嗎,如何找到TM鎖對應的TX鎖?

我昨天也這樣試過&#xff0c;但出來的結果和預料相差很遠。wyqORCL>update emp set ename ename;12 rows updated.wyqORCL>get lockline 16 truncated.1 /* showalllock.sql */2 column username format a63 column object_name format a134 column o_name format …

IISExpress Log 文件路徑

問題 用VS做開發時經常用IISExpress測試web程序&#xff0c;那么在測試過程中生成的Log文件放在哪里了&#xff1f; 答案 情況1 默認情況下 applicationhost.config 文中定義了連個日志文件路徑&#xff1a;IIS_USER_HOME&#xff08;即%userprofile%\documents\IISExpress\&am…

程序員職業路線圖

今天分享一張程序員職業路線圖&#xff1a;歡迎關注我的公眾號&#xff08;同步更新文章&#xff09;&#xff1a;DoNet技術分享平臺閱讀原文

jqgrid編輯php,php – 實現jqgrid單元格編輯datepicker

我知道使用datepicker進行單元格編輯是可能的,因為引用了here和here.但是,當我單擊單元格時,沒有出現日期選擇器.下面是相關列的colModel條目.我有datepicker UI可用.在其他示例中,dataInit不包含引號.它在我的代碼中,因為整個colModel是在AJAX請求期間由PHP動態創建的.我將它構…

C#編程規范整理

小編整理了一些C#編程的一些規范&#xff0c;希望對大家有點用處&#xff01;1、命名方式Pascal命名法&#xff1a;每個單詞首字母均大寫。Camel命名法&#xff1a;第一個單詞首字母小寫&#xff0c;其余單詞首字母大寫。2、有關類的規范1、使用 Pascal 大小寫。2、用名詞或名詞…

利用協議代理實現導航控制器UINavigationController視圖之間的正向傳值和反向傳值...

實驗說明 &#xff08;1&#xff09;正向傳值&#xff1a;比如A類里地值要傳給B類用&#xff0c;就是我們先在A類中聲明一個B類對象&#xff08;當然B類頭文件要import過來&#xff09;&#xff0c;然后把A類中得某個 值傳遞給B類中得某個值&#xff08;所以需要在B類中先準備一…

oracle索引自增函數,oracle生成動態前綴且自增號碼的函數分享

create or replaceFunction GetInvitationNO(prev varchar2, num1 varchar2, num2 varchar2, sessionSetting varchar2)Return Varchar2Authid Current_User Is PRAGMA AUTONOMOUS_TRANSACTION;-- 需要使用“Current_User”的權限防止無法運行“Execute Immediate”命令 & …