第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在 Golang 中附加文件并通過 SMTP 發(fā)送時(shí),電子郵件消息沒有正文部分

在 Golang 中附加文件并通過 SMTP 發(fā)送時(shí),電子郵件消息沒有正文部分

Go
Qyouu 2023-06-26 15:26:30
我正在嘗試在 Go (Golang) 中發(fā)送一封包含電子郵件正文和文件附件(CSV 文件)的電子郵件。我遵循mime多部分消息的標(biāo)準(zhǔn),但是我不太熟悉遵循該標(biāo)準(zhǔn)的消息的結(jié)構(gòu)。我模糊地遵循一位同事的Python代碼片段作為使用Python庫email(我認(rèn)為這是來自標(biāo)準(zhǔn)庫)的指南,例如MIMEText和MIMEMultipart.執(zhí)行以下 Go 代碼時(shí),電子郵件正文未顯示:這有什么問題嗎?如何發(fā)送包含該文件附件和電子郵件正文的電子郵件?該函數(shù)應(yīng)返回一個(gè)字節(jié)切片,用作smtp.SendMail從 Go 標(biāo)準(zhǔn)庫調(diào)用的參數(shù)。請參閱下面的注釋,了解收到的電子郵件發(fā)生的情況( 和THIS DOES NOT SHOW UP [...])THIS ALSO DOES NOT SHOW UP [...]。func msgWithAttachment(subject, filePath string) ([]byte, error) {    // this is the separator used for the various parts of the MIME message structure    // identified as "boundary"    bPlaceholder := "our-custom-separator"    // the message setup of the common/standard initial part    mime := bytes.NewBuffer(nil)    mime.WriteString(fmt.Sprintf("Subject: %s\r\nMIME-Version: 1.0\r\n", subject))    mime.WriteString(fmt.Sprintf("Content-Type: multipart/mixed; boundary=%s\r\n", bPlaceholder))    // THIS DOES NOT SHOW UP AS THE BODY OF THE EMAIL...    // mime.WriteString("\r\n")    // mime.WriteString(fmt.Sprintf("--%s\r\n", bPlaceholder))    // mime.WriteString("This should be the email message body (v1)...")    // mime.WriteString("\r\n")    // THIS ALSO DOES NOT SHOW UP AS THE BODY OF THE EMAIL...    // BUT IS NEEDED OTHERWISE THE EMAIL MESSAGE SEEMS TO CONTAIN AS ATTACHMENT THE EMAIL MESSAGE ITSELF    // (CONTAINING ITSELF THE REAL ATTACHMENT)    mime.WriteString(fmt.Sprintf("--%s\r\n", bPlaceholder))    mime.WriteString("Content-Type: text/plain; charset=utf-8\r\n")    mime.WriteString("This should be the email message body (v2)...")}
查看完整描述

2 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

巧合的是,前幾天我也遇到了類似的問題。我需要在正文內(nèi)容類型和正文本身的開頭之間有一個(gè)空行。以下是這部分代碼的更新行:

    mime.WriteString("Content-Type: text/plain; charset=utf-8\r\n")
    mime.WriteString("\r\nThis should be the email message body (v2)...")

為了清楚起見,這個(gè)換行符 (\r\n) 不必完全位于此處,它可以附加到上面的內(nèi)容類型行。它只需要在內(nèi)容類型和正文開頭之間看到一個(gè)空行。

我假設(shè)附件的附加沒有問題,對嗎?我的假設(shè)是,這是因?yàn)樵谔砑痈郊?shù)據(jù)之前,內(nèi)容處置行的末尾有雙換行符。


查看完整回答
反對 回復(fù) 2023-06-26
?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊

閱讀 RFC 規(guī)范對我有幫助:

請注意,封裝邊界必須出現(xiàn)在行的開頭,即在 CRLF 之后,并且初始 CRLF 被視為封裝邊界的一部分,而不是前面部分的一部分。邊界后面必須緊跟另一個(gè) CRLF 和下一部分的標(biāo)頭字段,或者是兩個(gè) CRLF,在這種情況下,下一部分沒有標(biāo)頭字段(因此假定為 Content-Type text/清楚的)。


查看完整回答
反對 回復(fù) 2023-06-26
  • 2 回答
  • 0 關(guān)注
  • 322 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號