全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3313
推到 Plurk!
推到 Facebook!

CB2009 + INDY TIdSMTP 發送信件的問題

尚未結案
cuteysc
初階會員


發表:16
回覆:37
積分:35
註冊:2003-05-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-04-19 00:57:08 IP:118.161.xxx.xxx 訂閱
各位先進您好 :

小弟於 CB2009 開發傳送信件的程式時, 遇到了編碼的問題

程式碼如下 :

[code cpp]
IdSMTP1->Host="goalsoft.com.tw";
IdSMTP1->Port=25;
IdMessage1->From->Address="ysc@goalsoft.com.tw";
IdMessage1->From->Name="測試 EMail";
IdMessage1->AttachmentEncoding="MIME";
IdMessage1->CharSet="utf-8";
IdMessage1->Encoding=meDefault;
IdMessage1->ContentType="text";
IdMessage1->ContentTransferEncoding="base64";
IdMessage1->Body->Assign(Memo1->Lines);
IdMessage1->Body->Text=IdMessage1->Body->Text.c_str();
IdMessage1->Subject="測試 EMail 編碼";
IdMessage1->Recipients->Clear();
IdMessage1->Recipients->EMailAddresses="service@goalsoft.com.tw";
IdSMTP1->Connect();
IdSMTP1->Send(IdMessage1);
IdSMTP1->Disconnect();
Close();
[/code]

雖然編碼是 UTF-8, 但是用 Outlook 收信的結果是, 內文還是使用 Big5 編碼, 並且信件的 Subject 會出現 ?????? 之亂碼

請問一下, 是小弟哪個步驟錯誤了嗎 ?
cuteysc
初階會員


發表:16
回覆:37
積分:35
註冊:2003-05-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-04-19 02:07:05 IP:118.161.xxx.xxx 訂閱
即使是使用了

IdMessage1->ContentType="text/plain;charset=utf-8";

也是相同的結果, 似乎 IdSMTP 沒有將編碼改變成 UTF-8 寄出信件

郵件內容 :

Received: from ysc ([118.161.191.88])
by goalsoft.com.tw ([192.168.1.6]);
Sun, 19 Apr 2009 02:11:06 0800
From: ?? EMail <ysc@goalsoft.com.tw>
Subject: ?? EMail ??
To: service@goalsoft.com.tw
Content-Type: text/plain;charset=utf-8;
charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Date: Sun, 19 Apr 2009 02:11:56 0800
編輯記錄
cuteysc 重新編輯於 2009-04-19 02:13:35, 註解 無‧
pcernet
初階會員


發表:68
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-07-17 21:01:17 IP:61.218.xxx.xxx 未訂閱
我也遇到相同的問題,我是使用Delphi2009,爬文後,聽說要使用

idMessage1.OnInitializeISO:=InitializeISO;
procedure TForm1.InitializeISO(var VHeaderEncoding: Char; var VCharSet:string);
begin
//VTransferHeader := bit8;
VHeaderEncoding := 'B';
VCharSet := 'big5';
end;

但還是沒用!
cuteysc
初階會員


發表:16
回覆:37
積分:35
註冊:2003-05-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-07-17 22:24:20 IP:114.32.xxx.xxx 訂閱
目前我是透過 HTTP Post 到 PHP 送出 Mail 了
mybanksoft
初階會員


發表:8
回覆:37
積分:29
註冊:2007-12-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-08-04 20:36:12 IP:118.231.xxx.xxx 訂閱
  1. 在delphi 2009所附的indy是10.2.5版,我將他換成indy 10.5.5版後就沒有亂碼的問題。
  2. 但是indy 的idmessage的主旨,顯示不出unicode,而內容(unicode的字體預設是細明體)及附加檔案都是ok的
  3. 程式及元件任何字型都不用設定,只要用預設即可,因為delphi 2009是真正的unocode
  4. 建議用svn升級,這樣的話随身可以更新,最新的版本(亂碼是因為indy尚未完全跟上delphi 2009或 C 2009的關係。
------
努力學習Rave
系統時間:2017-12-11 9:52:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!