freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文vc-mfc電子郵件客戶端發(fā)郵-資料下載頁

2025-06-06 16:34本頁面
  

【正文】 f (nCurSel == 1) { AfxMessageBox(L您還沒有選中一行! )。 } else{ if (MessageBox(L是否設(shè)為默認(rèn)賬號? , L, MB_ICONWARNING | MB_YESNO) == IDYES){ POSITION pos = ()。 int nItem = (pos)。 mail = (nItem, 0)。 (Lupdate account set statusjie=39。39。)。 //AfxMessageBox(strSQL)。 (strSQL, amp。boolresult)。 (Lupdate account set statusjie=39。默認(rèn) 39。 where userjie=39。%s39。, mail)。 (strSQL, amp。boolresult)。 if (boolresult){ SetDlgItemText(IDC_INFO, L設(shè)置默認(rèn)賬號成功 !)。 } else{ SetDlgItemText(IDC_INFO, L出錯啦 ::_::\n 設(shè) 置默認(rèn)賬號失敗 !)。 } OnFreshList()。 } } } ( 3) 刪除選中的賬戶記錄 代碼如下: void CUserDlg::OnBnClickedDelete() { SetDlgItemText(IDC_INFO, L)。 // TODO: 在此添加控件通知處理程序代碼 SetDlgItemText(IDC_INFO, L)。 nCurSel = (1, LVNI_SELECTED)。 if (nCurSel == 1) { AfxMessageBox(L您還沒有選中一行! )。 } else{ if (MessageBox(L是否刪除選定賬號? , L, MB_ICONWARNING | xx 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 32 MB_YESNO) == IDYES){ POSITION pos = ()。 int nItem = (pos)。 mail = (nItem, 0)。 (Ldelete from account where userjie=39。%s39。, mail)。 //AfxMessageBox(strSQL)。 (strSQL, amp。boolresult)。 if (boolresult){ SetDlgItemText(IDC_INFO, L刪除賬號成功 !)。 } else{ SetDlgItemText(IDC_INFO, L出錯啦 ::_::\n 刪除賬號失敗 !)。 } OnFreshList()。 } } } 聯(lián)系人管理 模塊 創(chuàng)建添加聯(lián)系人對話框并關(guān)聯(lián)到類 CContactDlg。 xx 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 33 添加和刪除均功能使用的是 部分講到的數(shù)據(jù)庫操作代碼,在此不再贅述。 郵件 功能模塊 用戶 使用本系統(tǒng) 主要的工作就是對郵件的管理,畢竟這是個簡易郵件系統(tǒng),因此系統(tǒng)默認(rèn)進(jìn)入到郵件管理的界面。而郵件管理又分為收件箱、草稿箱、發(fā)件箱、垃圾箱 、收回站 等功能,因此要為它們都設(shè)計(jì)按鈕, 單擊各個按鈕,則 篩選出 各自 的郵件 。為了界面的美觀,可以尋找具有代表性的圖標(biāo)作為按鈕。而當(dāng)單擊“寫郵件”按鈕進(jìn)入郵件的撰寫界面時,則要提供收件人、標(biāo)題和內(nèi)容的輸入文本框,其中收件人和標(biāo)題在文本框中輸入,而內(nèi)容則提供文本區(qū)域進(jìn)行輸入。為了用戶 選擇發(fā)件賬戶 ,設(shè)計(jì) 了 下拉列表顯示 所有的 的 賬 戶名 ,默認(rèn)郵件賬戶為第一位 ,用戶只要從中選擇即可。 發(fā)送電子郵件 界面設(shè)計(jì)的結(jié)果如圖所示 : xx 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 34 因?yàn)殡娮余]件有其特殊的結(jié)構(gòu),不單簡單地將其作為文本進(jìn)行處理。例如,郵件必須在郵件頭和郵件體后發(fā)送,而在收信時,先需要解析郵件頭和郵件體。 總 的來說,發(fā)送一封電子郵件經(jīng)歷了 3個步驟,連接服務(wù)器、驗(yàn)證用戶名和密碼、發(fā)送經(jīng)轉(zhuǎn)換為 Base64的郵件密文。此處不得不介 紹一下 Base64 編碼與解碼: Base64 編碼可用于在HTTP 環(huán)境下傳遞較長的標(biāo)識信息。 采用 Base64 編碼不僅比較簡短,同時也具有不可讀性 , 即所編碼的數(shù)據(jù)不會被人用肉眼所直接看到。 所以從服務(wù)器上接收到的郵件看起來像亂碼 , 需要進(jìn)行轉(zhuǎn)碼 (翻譯 )才能用肉眼識別 。 Mozilla Thunderbird 和Evolution 用 Base64 來保密電子郵件密碼 。 Base64 也會經(jīng)常用作一個簡單的“加 密”來保護(hù)某些數(shù)據(jù),而真正的加密通常 都比較繁瑣。 //連接服務(wù)器 if (!((stringSmtp), 25)){ AfxMessageBox(L連接服務(wù)器失敗 !)。 return。 } //驗(yàn)證用戶名密碼 if (!(stringAccount, stringPWd)){ AfxMessageBox(L用戶名或密碼失敗 !)。 return。 } if (!(stringAccount, dqTmp, xx 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 35 stringAccount, 你好 , stringTheme, stringBody, m_dqFiles, FALSE)) { AfxMessageBox(L郵件發(fā)送失敗 !)。 return。 } Base64 編碼解碼的代碼過于冗長,不便在論文中貼出。郵件發(fā)送功能函數(shù)代碼如下: bool ZSmtp::SendData(const string SendFrom, // 發(fā)送地址 const dequestring SendToList, // 目地地址列表 const string SenderName, // 發(fā)送者姓名 const string ReceiverName, // 接收者姓名 const string Subject, // 郵件主題 const string Content, // 郵件內(nèi)容 const dequestring Files, // 附件列表 bool IsHtml) // 是否以 HTML 格式發(fā)送 { if (()) return false。 if (() = 0) return false。 string strTmp。 ZBase64 base64。 //發(fā)送 MAIL FROM: strTmp = MAIL FROM: + SendFrom + \r\n。 if (send(m_SOCKET , () , () , 0) == SOCKET_ERROR) { ReleaseSocket()。 return false。 } if (!CheckResponse(250)) return false。 //發(fā)送 RCPT To: for (int i = 0。 i ()。 i++) { strTmp = RCPT To: + SendToList[i] + \r\n。 xx 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 36 if (send(m_SOCKET , () , () , 0) == SOCKET_ERROR) { ReleaseSocket()。 return false。 } if (!CheckResponse(250)) return false。 } //發(fā)送 DATA\r\n if (send(m_SOCKET , DATA\r\n , strlen(DATA\r\n) , 0) == SOCKET_ERROR) { ReleaseSocket()。 return false。 } if (!CheckResponse(354)) return false。 //Mail From:SenderName\r\n strTmp = From: + SenderName + + SendFrom + \r\n。 //Subject: 郵件主題 \r\n strTmp += Subject: + Subject + \r\n。 //MIME_Version:\r\n strTmp += MIME_Version:\r\n。 //XMailer:Smtp Client By xxx//版權(quán)信息 strTmp += XMailer:。 strTmp += COPYRIGHT。 strTmp += \r\n。 //MIME_Version:\r\n strTmp += MIME_Version:\r\n。 //Contenttype:multipart/mixed。Boundary=xxx\r\n\r\n。 strTmp += Contenttype:multipart/mixed。Boundary=。 strTmp += BOUNDARY。 strTmp += \r\n\r\n。 //先將 HEADER 部分發(fā)送過去 if (send(m_SOCKET , () , () , 0) == SOCKET_ERROR) { ReleaseSocket()。 return false。 } //郵件主體 xx 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 37 strTmp = 。 strTmp += BOUNDARY。 strTmp += \r\n。 strTmp += IsHtml ? Contenttype:text/html。Charset=gb2312\r\n : Contenttype:text/plain。Charset=gb2312\r\n。 strTmp += ContentTransferEncoding:8bit\r\n\r\n。 //郵件內(nèi)容 strTmp += Content + \r\n\r\n。 //將郵件內(nèi)容發(fā)送出去 if (send(m_SOCKET , () , () , 0) == SOCKET_ERROR) { ReleaseSocket()。 return false。 } /* 附件處理 對文件內(nèi)容分段進(jìn)行 base64 編碼,編碼一小段,傳送一小段 */ for (int i = 0。 i ()。 i++) { strTmp = 。 strTmp += BOUNDARY。 strTmp += \r\n。 strTmp += ContentType:application/octetstream。Name=。 strTmp += Files[i].substr(Files[i].find_last_of(\\) + 1).c_str()。 strTmp += \r\n。 strTmp += ContentDisposition:attachment。FileName=。 strTmp += Files[i].substr(Files[i].find_last_of(\\) + 1).c_str()。 strTmp += \r\n。 strTmp += ContentTransferEncoding:Base64\r\n\r\n。 if (send(m_SOCKET , () , () , 0) == SOCKET_ERROR) { ReleaseSocket()。 return false。 } FILE* fin = fopen(Files[i].c_str(), rb)。 char* Buf = new char[BUFFER_READ + 1]。 xx 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 38 memset(Buf, 0, BUFFER_READ + 1)。 int ReadSize = fread(Buf, 1, BUFFER_READ, fin)。 while (ReadSize == BUFFER_READ) { strTmp = ((unsigned char*)Buf, ReadSize)。 if (send(m_SOCKET, (), (), 0) == SOCKET_ERROR) { ReleaseSocket()。 return false。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1