以IdSMTP發信至大陸地區,開啟信件為亂碼 |
尚未結案
|
fivker
一般會員 ![]() ![]() 發表:24 回覆:38 積分:12 註冊:2006-12-05 發送簡訊給我 |
大家好:
我在使用IdSMTP元件發信,使用端的電腦語系為簡體版,以outlook收信 email.CharSet:='UTF-8'; email.ContentType := 'multipart/mixed'; subject 顯示正常 但是body部份為亂碼,附檔檔名也是亂碼,該怎麼設定??謝謝 以下是原始碼 [code delphi] procedure generate_mail; var i: integer; txtpart: Tidtext; htmpart: tidtext; bmppart: TIdAttachment; begin //for i:= 0 to MemoForm.memo1.lines.count - 1 do begin // html.add(parseline(MemoForm.memo1.Lines.Strings[i])); //end; for i:=0 to Memomail.Lines.count-1 do begin html.add(Memomail.Lines.Strings[i]); end; email:= TIdMessage.Create(nil); email.From.Text:= aaaa@xxxx.com.tw; email.CharSet:='UTF-8'; email.subject:=EditSubject.text; email.ContentType := 'multipart/mixed'; email.Body.Assign(html); txtpart:= TIdText.Create(email.MessageParts); txtpart.ContentType := 'text/plain'; txtpart.Body.Text := ''; htmpart := TIdText.Create(email.MessageParts, html); htmpart.ContentType := 'text/html'; //if vexcelfilname<>'' then TIdAttachment.Create(email.MessageParts,'C:\測試資料.txt'); for i:= 0 to piclist.Count - 1 do begin bmppart:= TIdAttachment.Create(email.MessageParts, piclist.Strings[i]); bmppart.ContentType := 'image/jpeg'; bmppart.ContentDisposition := 'inline'; bmppart.ExtraHeaders.Values['content-id']:= piclist.Strings[i]; bmppart.DisplayName := piclist.Strings[i]; end; end; [/code] |
fivker
一般會員 ![]() ![]() 發表:24 回覆:38 積分:12 註冊:2006-12-05 發送簡訊給我 |
|
fivker
一般會員 ![]() ![]() 發表:24 回覆:38 積分:12 註冊:2006-12-05 發送簡訊給我 |
用webmail +VB 發送email 成功(程式碼在下方)
但我的delphi 程式改成用webmail發送。 內容改成html語法去增加 也作了下列設定 email.CharSet:='UTF-8'; email.ContentTransferEncoding:='code64'; email.ContentType := 'text/html; charset="UTF-8" '; 不過怎麼測,user收到的信件還是亂碼,真是頭痛 @@ [code vb] Sub Main() Dim strSysMail() As String = {"system@webmail.com.tw", "系統管理員"} Dim mMail As New MailMessage mMail.IsBodyHtml = True Dim strPriority As String = "High" '宣告信件本文 Dim mMailBody As New StringBuilder '用來做迴圈使用 Dim i As Integer = 0 '以下為組合郵件本文 mMailBody.Append("<html>") mMailBody.Append("<head><meta http-equiv=content-type content=text/html></head>") mMailBody.Append("<body bgcolor=#ffffff topmargin=3 marginheight=3>") mMailBody.Append(" ") mMail.Subject = " 測試郵件" mMailBody.Append("測試郵件-是否有亂碼!! ") '結束郵件本文的 Html 語法 mMailBody.Append("</body></html>") mMail.From = New MailAddress("AAA@XXX.com") mMail.CC.Add("bbb@XXX.com") i = 0 Dim ErrMsg As String = "" While i < 5 Try Dim mClient As New SmtpClient mMail.IsBodyHtml = True mMail.BodyEncoding = System.Text.Encoding.Default Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(mMailBody.ToString, Nothing, "text/html") mMail.AlternateViews.Add(htmlView) '將上述設定好的內嵌圖檔格式加入到 Mail 物件 Select Case strPriority.ToUpper Case "HIGH" mMail.Priority = Net.Mail.MailPriority.High Case "LOW" mMail.Priority = Net.Mail.MailPriority.Low Case "NORMAL" mMail.Priority = Net.Mail.MailPriority.Normal End Select mClient.Host = "webmail.com.tw" mClient.Port = 25 mClient.UseDefaultCredentials = False mClient.Credentials = New System.Net.NetworkCredential("userid", "password") mClient.Send(mMail) Exit While Catch ex As Exception ErrMsg = ex.ToString i = 1 End Try If i = 5 Then '代表email 發送 5 次都不成功 '表示發送 email 失敗 '宣告一個以定義好的 DataTable 用來儲存針對 Sql Server 的語法 Dim msg As String = "【發送 Email 失敗】,請通知系統管理人員!!" & vbCrLf & ErrMsg '將錯誤的訊息顯示給 User End If End While End Sub [/code] |
zhouying82
高階會員 ![]() ![]() ![]() ![]() 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
|
zhouying82
高階會員 ![]() ![]() ![]() ![]() 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
|
fivker
一般會員 ![]() ![]() 發表:24 回覆:38 積分:12 註冊:2006-12-05 發送簡訊給我 |
您好,我的開發環境是Delphi 5,FastNet元件本身不支援html碼的content。
content-Type:text/html 這段我也有測試過,但是還是一樣出現亂碼。 ===================引 用 zhouying82 文 章=================== 楼上的,或者你设置“Content-Type: text/html;” 在试试看? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |