Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
融界2023年12月30日消息,據(jù)國家知識產(chǎn)權局公告,中航(成都)無人機系統(tǒng)股份有限公司申請一項名為“一種基于HTML文件格式的Qt界面及樣式自動生成方法及系統(tǒng)“,公開號CN117311692A,申請日期為2023年9月。
專利摘要顯示,本發(fā)明涉及Qt界面應用程序開發(fā)領域,尤其涉及一種基于HTML文件格式的Qt界面及樣式自動生成方法及系統(tǒng),通過獲取界面原型設計軟件導出的HTML文件數(shù)據(jù)及其對應的資源文件數(shù)據(jù);對HTML文件及其文件關聯(lián)關系進行解析,得到預編譯生成界面;對預編譯生成界面中的圖元、圖元屬性、圖元與圖元之間的邏輯關系進行類文件解析,得到界面圖元列表數(shù)據(jù);構建Qt界面的圖元與控件類型的映射關系,得到圖元與控件映射關系數(shù)據(jù);基于預編譯生成界面、界面圖元列表數(shù)據(jù)和圖元與控件映射關系數(shù)據(jù),自動生成Qt界面文件和Qt界面樣式文件。通過對原型設計軟件的導出的HTML格式文件的自動解析,減少了繁瑣的界面布局及界面樣式調(diào)試,極大的提高了Qt界面應用軟件的開發(fā)效率。
本文源自金融界
<html><head/><body><p style=\"height:16px;line-height:24px;color:#787878\"> helloWorld</p></body></html>
SMTP協(xié)議:全稱為 Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議。它定義了郵件客戶端軟件和SMTP郵件服務器之間,以及兩臺SMTP郵件服務器之間的通信規(guī)則。
SMTP是一個相對簡單的基于文本的協(xié)議。在其之上指定了一條消息的一個或多個接收者(在大多數(shù)情況下被確認是存在的),然后消息文本會被傳輸。可以很簡單地通過telnet程序來測試一個SMTP服務器。SMTP使用TCP端口25。
SMTP協(xié)議的工作過程可分為如下3個過程:
(1)建立連接:在這一階段,SMTP客戶請求與服務器的25端口建立一個TCP連接。一旦連接建立,SMTP服務器和客戶就開始相互通告自己的域名,同時確認對方的域名。
(2)郵件傳送:利用命令,SMTP客戶將郵件的源地址、目的地址和郵件的具體內(nèi)容傳遞給SMTP服務器,SMTP服務器進行相應的響應并接收郵件。
(3)連接釋放:SMTP客戶發(fā)出退出命令,服務器在處理命令后進行響應,隨后關閉TCP連接。
【領QT開發(fā)教程學習資料,點擊下方鏈接免費領取↓↓,先碼住不迷路~】
點擊→領取「鏈接」
SMTP 協(xié)議中一共定義了18條命令,但是發(fā)送一封電子郵件的過程通常只需要6條命令,我將這6調(diào)命令/響應的語法格式總結如下:
注意:SMTP命令不區(qū)分大小寫,但參數(shù)區(qū)分大小寫。<>內(nèi)代表參數(shù),<SP>是空格,<CRLF>代表\r\n
SMTP命令及格式 | 描述 |
EHLO <domain><CRLF> | ehlo命令是SMTP郵件發(fā)送程序與SMTP郵件接受程序建立簡介后必須發(fā)送的第一條SMTP命令,參數(shù)<domain>表示SMTP郵件發(fā)送者的名稱(郵箱名) |
AUTH <para><CRLF> | 告訴SMTP服務器認證方式,參數(shù)para表示回應的認證方式,通常是AUTH LOGIN |
MAIL FROM:<reverse-path><CRLF> | 此命令用于指定郵件發(fā)送者的郵箱地址,參數(shù)reverse-path表示發(fā)件人的郵箱地址 |
RCPT TO:<forword-path><CRLF> | 此命令用于指定郵件接受者的郵箱地址,參數(shù)forword-path表示發(fā)件人的郵箱地址,如果郵件要發(fā)送給多個接受者,那么應該使用多條RCPT TO命令來分別指定每一個接受者的郵箱地址 |
DATA<CRLF> | 此命令用于表示SMTP郵件發(fā)送程序準備開始傳送郵件內(nèi)容,在這個命令后面發(fā)送的所有數(shù)據(jù)都將被當做郵件內(nèi)容,直到遇到<CRLF>.<CRLF>表示符,則表示郵件內(nèi)容結束 |
QUIT<CRLF> | 此命令表示要結束郵件發(fā)送過程,SMTP郵件接受程序接收到此名后,將關閉與SMTP郵件服務器的連接 |
大家可能光看這些命令不太清楚,下面我總結了一下使用Smtp協(xié)議手工發(fā)送郵件的步驟:
①、和SMTP服務器建立連接,telnet smtp.163.com 25。這條命令是和163郵箱建立連接,如果是和QQ,那么將163換成qq即可,同理別的郵箱也是一樣。后面的數(shù)字25表示SMTP服務器的端口號。
②、ehlo 發(fā)件人用戶名。這沒什么好說的,就是告訴SMTP服務器發(fā)送者的用戶名。
③、選擇登錄認證方式,一般我們在第二步執(zhí)行完后,會提示有幾種認證方式,我們一般選擇的是login。即輸入命令:auth login
④、分別輸入經(jīng)過Base64加密后的用戶名和密碼。注意必須是要經(jīng)過 Base64加密后的用戶名和密碼,大家可以Base64 在線編碼解碼
⑤、指明郵件的發(fā)送人和收件人
mail from:<xxx@163.com>
rcpt to:<xxx@qq.com>
⑥、輸入data命令,然后編寫要發(fā)送的郵件內(nèi)容,郵件的編寫格式規(guī)則如下:
第一步:輸入data
第二步:輸入郵件內(nèi)容
⑦、輸入“.”表示郵件內(nèi)容輸入完畢
⑧、輸入quit命令斷開與郵件服務器的連接
【領QT開發(fā)教程學習資料,點擊下方鏈接免費領取↓↓,先碼住不迷路~】
點擊→領取「鏈接」
①、執(zhí)行 telent smtp.163.com 25 命令時,報如下錯誤:
解決辦法是:控制面板----程序------啟動或關閉 Windows 功能----將Telnet勾上,然后點擊確定即可
②、用戶名和密碼必須要base64加密
③、每一步驟之間輸入命令要盡量快,不然會自動斷開連接
④、163郵箱可以使用用戶名和密碼,但是QQ郵箱必須使用用戶名和授權碼。
⑤、輸入郵件內(nèi)容時,空行不要忘記了,還有結束輸入是以“.”結束的。
RFC822文檔存在兩個問題:
①、定義了郵件內(nèi)容的主體結構和各種郵件頭字段的詳細細節(jié),但是,它沒有定義郵件體的格式,RFC822文檔定義的郵件體部分通常都只能用于表述一段普通的文本,而無法表達出圖片、聲音等二進制數(shù)據(jù)。
②、SMTP服務器在接收郵件內(nèi)容時,當接收到只有一個“.”字符的單獨行時,就會認為郵件內(nèi)容已經(jīng)結束,如果一封郵件正文中正好有內(nèi)容僅為一個“.”字符的單獨行,SMTP服務器就會丟棄掉該行后面的內(nèi)容,從而導致信息丟失。
上面兩個問題是致命的,當今的電子郵件,人們希望在電子郵件中嵌入圖片、聲音、動畫和附件。但是,由于圖片和聲音等內(nèi)容是非ASCII碼的二進制數(shù)據(jù),而RFC822郵件格式只適合用來表達純文本的郵件內(nèi)容,所以,要使用RFC822郵件格式發(fā)送這些非ASCII碼的二進制數(shù)據(jù)時,必須先采用某種編碼方式將它們“編碼”成可打印的ASCII字符后再作為RFC822郵件格式的內(nèi)容。郵件閱讀程序在讀取到這種經(jīng)過編碼處理的郵件后,再按照相應的解碼方式解碼出原始的二進制數(shù)據(jù),這樣就可以借助RFC822郵件格式來傳遞多媒體數(shù)據(jù)了。這種做法需要解決一下兩個技術問題:
一、郵件閱讀程序如何知道郵件中嵌入的原始二進制數(shù)據(jù)所采用的編碼方式;
二、郵件閱讀程序如何知道每個嵌入的圖像或其他資源在整個郵件內(nèi)容中的起止位置。
為了解決上面兩個問題,人們后來專門為此定義了MIME(Multipurpose Internet Mail Extension,多用途Internet郵件擴展)協(xié)議。
Content-Type(內(nèi)容類型),用于定義文件的類型和編碼,Content-Type字段中的內(nèi)容以“主類型/子類型”的形式出 現(xiàn),主類型有 text、image、audio、video、application、multipart、message等,分別表示文本、圖片、音頻、視頻、應用 程序、組合結構、消息等。每個主類型下面都有多個子類型,例如text主類型包含plain、html、xml、css等子類型。multipart主類 型用于表示MIME組合消息,它是MIME協(xié)議中最重要的一種類型。
一封MIME郵件中的MIME消息可以有三種組合關系:混合、關聯(lián)、選擇,它們對應 MIME類型如下:
類型 | 描述 |
multipart/mixed | 表示消息體中的內(nèi)容是混和組合類型,內(nèi)容可以是文本、聲音和附件等不同郵件內(nèi)容的混和體(整封郵件的MIME類型就必須定義為multipart/mixed) |
multipart/related | 表 示消息體中的內(nèi)容是關聯(lián)(依賴)組合類型,郵件正文要使用HTML代碼引用內(nèi)嵌的圖片資源,它們組合成的MIME消息的MIME類型就應 該定義為multipart/related |
multipart/alternative | 表 示消息體中的內(nèi)容是選擇組合類型,例如一封郵件的郵件正文同時采用HTML格式和普通文本格式進行表達時,就可以將它們嵌套在一個 multipart/alternative類型的MIME組合消息中。這種做法的好處在于如果郵件閱讀程序不支持HTML格式時,可以采用其中的文本格 式進行替代。 |
總結:如果要在郵件中要添加附件,就必須將整封郵件的MIME類型定義為multipart/mixed;如果要在HTML格式的正文中引用內(nèi)嵌資 源,那就要定義multipart/related類型的MIME消息;如果普通文本內(nèi)容與HTML文本內(nèi)容共存,那就要定義multipart /alternative類型的MIME消息。
【領QT開發(fā)教程學習資料,點擊下方鏈接免費領取↓↓,先碼住不迷路~】
點擊→領取「鏈接」
在Content-type頭字段中除了可以定義消息體的MIME類型外,還可以在MIME類型后面包含相應的屬性,屬性以“屬性名=屬性值”的形式出現(xiàn),屬性與MIME類型之間采用分號(;)分隔,如下所示:
主類 型 | 屬 性 名 | 說 明 |
text | charset | 用于說明文本內(nèi)容的字符集編碼 |
image | name | 用于說明圖片文件的文件名 |
application | name | 用于說明應用程序的文件名 |
multipart | boundary | 用于定義MIME消息之間的分隔符 |
除了 Content-Type頭字段之外,MIME協(xié)議中還定義Content- Transfer-Encoding、Content-Disposition、Content-ID、Content-Location、 Content-Base等幾個重要的頭字段,這幾個頭字段需要與Content-type頭字段配合使用,它們的作用如下:
Content-Transfer-Encoding頭字段用于指定MIME消息體中的內(nèi)容所采用的郵件編碼方式。
Content- Disposition頭字段用于指定郵件閱讀程序處理數(shù)據(jù)內(nèi)容的方式,有inline和attachment兩種標準方式,inline表示直接處理, 而attachment表示當做附件處理。如果將Content-Disposition設置為attachment,在其后還可以指定filename 屬性,如下所示:
Content-Disposition: attachment; filename="1.bmp"
上面的MIME頭字段表示MIME消息體的內(nèi)容為郵件附件,附件名"1.bmp"。
Content- ID頭字段用于為“multipart/related”組合消息中的內(nèi)嵌資源指定一個唯一標識號,在HTML格式的正文中可以使用這個唯一標識號來引用 該內(nèi)嵌資源。例如,假設將一個表示內(nèi)嵌圖片的MIME消息的Content-ID頭字段設置為如下形式:
Content-ID: maye520_gif
那么,在HTML正文中就需要使用如下HTML語句來引用該圖片資源:
注意,在引用Content-ID頭字段標識的內(nèi)嵌資源時,要在資源的唯一標識號前面加上“cid:”,以說明要采用唯一標識號對資源進行引用。
Content- Location頭字段用于為內(nèi)嵌資源設置一個URI地址,這個URI地址可以是絕對或相對的。當使用Content- Location頭字段為一個內(nèi)嵌資源指定一個URI地址后,在HTML格式的正文中也可以使用這個URI來引用該內(nèi)嵌資源。例如,假設將一個表示內(nèi)嵌圖 片的MIME消息的Content-Location頭字段設置為如下形式:
Content-Location:http://www.maye.com/images/maye520.gif
那么,在HTML正文中就可以使用如下HTML語句來引用該圖片資源:
<img src="http://www.maye.com/images/maye520.gif">
Content- Base頭字段用于為內(nèi)嵌資源設置一個基準路徑,只有這樣,Content-Location頭字段中設置的URI才可以采用相對地址。例如,假設將一個 表示內(nèi)嵌圖片的MIME消息的Content-Base和Content-Location頭字段設置為如下形式:
Content-Base: http://www.maye.org/images/
Content-Location: maye520.gif
那么,內(nèi)嵌資源的完整路徑就是Content-Base頭字段設置的基準路徑與Content-Location頭字段設置的相對路徑相加的結果,在HTML正文中就可以使用如下HTML語句來引用該圖片資源:
<imgsrc="http://www.maye.com/images/maye520.gif">
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。