如何使用 C++ 生成器获取电子邮件正文
How to get Body of the email using c++ builder
我想从我的 Gmail 帐户获取电子邮件正文,所以我使用这段代码,我在一个示例中找到了它,了解如何使用 C++ 构建器 pop3 阅读电子邮件
使用的提取正文的代码
TIdText *EText;
int message = SpinEdit1->Value;
MyPoP3->Retrieve(message, MyEmail);
Edit1->Text = MyEmail->Subject + " | " + MyEmail->From->Address;
Memo1->Clear();
for (int i = 0; i < MyEmail->MessageParts->Count; i++) {
Memo1->Lines->Add(MyEmail->MessageParts->Items[i]->ContentType);
EText = dynamic_cast<TIdText*>(MyEmail->MessageParts->Items[i]);
Memo1->Lines->Add(EText->Body);
}
问题是我得到了 TidText 的未定义符号,我尝试将它从 TIdText
更改为 TIdMessage
,但我发现我无法转换为它。
我也试着在没有循环的情况下尝试这个 MyEmail->Body->Text
这个 return 空字符串。
我从中获得此代码的视频 here 我不知道也许他使用的 C++ 生成器很旧。现在我想知道如何从电子邮件地址中提取正文。
提前致谢。
the problem is that i got undefine symbol to TidText
您的代码缺少 #include <IdText.hpp>
语句。
what i tried is to change it from TIdText
to TIdMessage
, but i got that i can't convert to it.
因为TIdMessage
不包含嵌套的TIdMessage
对象。
also i tried to try this without loop or something MyEmail->Body->Text
this return empty string.
如果您的电子邮件是 MIME 编码的,其文本不会存储在 TIdMessage::Body
属性 中,而是存储在 TIdMessage::MessageParts
集合中的嵌套 TIdText
对象中。您必须查看 TIdMessage::ContentType
属性 才能知道电子邮件包含哪种结构。例如,如果 CT 以 text/
开头,则文本位于 TIdMessage::Body
中。但是,如果 CT 以 multipart/
开头,则文本位于 TIdMessage::MessageParts
中的某处。
您应该阅读 Indy 网站上的这篇博客文章,了解电子邮件结构的示例:
the video i got this code from it here i don't know maybe the c++ builder he use is old.
不,不是。
我想从我的 Gmail 帐户获取电子邮件正文,所以我使用这段代码,我在一个示例中找到了它,了解如何使用 C++ 构建器 pop3 阅读电子邮件
使用的提取正文的代码
TIdText *EText;
int message = SpinEdit1->Value;
MyPoP3->Retrieve(message, MyEmail);
Edit1->Text = MyEmail->Subject + " | " + MyEmail->From->Address;
Memo1->Clear();
for (int i = 0; i < MyEmail->MessageParts->Count; i++) {
Memo1->Lines->Add(MyEmail->MessageParts->Items[i]->ContentType);
EText = dynamic_cast<TIdText*>(MyEmail->MessageParts->Items[i]);
Memo1->Lines->Add(EText->Body);
}
问题是我得到了 TidText 的未定义符号,我尝试将它从 TIdText
更改为 TIdMessage
,但我发现我无法转换为它。
我也试着在没有循环的情况下尝试这个 MyEmail->Body->Text
这个 return 空字符串。
我从中获得此代码的视频 here 我不知道也许他使用的 C++ 生成器很旧。现在我想知道如何从电子邮件地址中提取正文。
提前致谢。
the problem is that i got undefine symbol to TidText
您的代码缺少 #include <IdText.hpp>
语句。
what i tried is to change it from
TIdText
toTIdMessage
, but i got that i can't convert to it.
因为TIdMessage
不包含嵌套的TIdMessage
对象。
also i tried to try this without loop or something
MyEmail->Body->Text
this return empty string.
如果您的电子邮件是 MIME 编码的,其文本不会存储在 TIdMessage::Body
属性 中,而是存储在 TIdMessage::MessageParts
集合中的嵌套 TIdText
对象中。您必须查看 TIdMessage::ContentType
属性 才能知道电子邮件包含哪种结构。例如,如果 CT 以 text/
开头,则文本位于 TIdMessage::Body
中。但是,如果 CT 以 multipart/
开头,则文本位于 TIdMessage::MessageParts
中的某处。
您应该阅读 Indy 网站上的这篇博客文章,了解电子邮件结构的示例:
the video i got this code from it here i don't know maybe the c++ builder he use is old.
不,不是。