簡體   English   中英

無法通過mail()函數將Excel文檔(轉換為HTML / PHP)發送到電子郵件

[英]Having trouble sending an Excel (converted to HTML/PHP) doc to Email via mail() function

我將Excel電子表格轉換為PHP(使用“另存為HTML”將.xls轉換為“往返” HTML),以便可以使用電子表格填寫使用HTML表單填寫並存儲在數據庫中的數據。 該項目的這一部分工作正常(盡管仍需要改進)。

不幸的是,我遇到了兩個問題(但它們彼此相關)。 首先,當我將文檔轉換為HTML時,它創建了很多CSS-在查看或打印時HTML文檔看起來與原始Excel文檔完全相同。 問題是CSS嚴重地使代碼腫。 那么,有沒有一種方法可以將所有CSS移到外部樣式表,並在通過mail()函數發送代碼時仍然引用它? 這使我想到了第二個問題。

這是jsfiddle中代碼的鏈接:

http://jsfiddle.net/tyleryoungblood/KzzWR/

這就是呈現的樣子(注意:沒有數據被填充,因為它無法連接到數據庫,即使PHP代碼沒有在jsfiddle中呈現):

http://jsfiddle.net/tyleryoungblood/KzzWR/embedded/result/

如何通過電子郵件發送所有這些代碼,以便電子郵件的收件人將代碼作為附件發送? 最好將文檔轉換回可以使用的excel文檔,但是我意識到這可能會很麻煩。 因此,既可見又可打印的附加HTML或PHP頁面(看上去與原始Excel文檔完全相似)也是可接受的最終格式。 我希望HTML作為附件包含在內,而不是直接在電子郵件中呈現。

目標是將會計部門的過時費用系統從基於紙張的系統轉換為電子系統。 目前,員工必須填寫他們的里程和費用的excel電子表格,將其打印並郵寄到會計部門。 我正在嘗試升級該過程,以便員工在網頁上填寫他們的費用,然后點擊“提交會計”以電子方式發送表格。 通常,我只是在電子郵件中發送表單的值(就像您使用聯系表單一樣),但是會計不想更改其記錄保存系統。 他們希望數據看起來和以前一樣,就像打印的Excel電子表格一樣。 這就是為什么我創建了一個Excel頁面的PHP版本,該頁面可以自動填充(通過通過HTML表單填充的數據庫)。 現在,我只需要弄清楚如何將其直接通過電子郵件發送到會計部門。

在此先感謝您的幫助!

從技術上講,電子郵件附件只是電子郵件數據的一部分,由MIME內容邊界與其余部分分開,並具有自己的標頭。 我確定有一些php庫可以幫助解決所有問題(不幸的是,我不知道一個馬上就可以使用,但是它必須存在)。

您可以在電子郵件客戶端中查看電子郵件的結構-通常可以選擇“查看原始來源”或類似內容。 通常,您會同時以html和純文本(前2個MIME部分)形式看到電子郵件本身的內容,並且如果有附件,它們將位於以下部分中。

無論如何,如果您要發送的帳目本來就不需要編輯,並且看起來像打印的文檔,那么我想您應該使用PDF文件。 畢竟,這就是PDF的目的。 或者,您可以將HTML與外部CSS文件一起用作電子郵件本身的內容。 然后,會計人員可以直接在其電子郵件客戶端中直接查看工作表,而無需在Excel中打開附件。

如果您確實需要附件,並且必須在Excel中打開,我會使用XML而不是HTML。 Excel可以導出為XML,因為這只是數據的表示形式,而HTML涉及到將一切都塞入HTML的處理方式中。 另外,我不知道Excel是否可以解決使用外部CSS文件打開HTML文件的問題。

如果要使用XML,可以執行以下操作:將Excel文件另存為XML,然后查看文件的內容。 那里仍然會有很多額外的數據,但是其中很多數據都沒有用,所以請查看在Excel無法再正確打開數據之前可以清除的數據。 然后,您可以使用一個不錯的模板。 弄清楚這一切如何並不太難。 最后,您應該得到一個Excel易於讀取的文件,而不是需要從HTML轉換的文件。

我知道這不是真正的答案,但也許可以給您一些想法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM