sách gpt4 ai đã đi

outlook - 如何在没有 Outlook API 的情况下从 Outlook MSG 文件中读取接收日期?

In lại 作者:行者123 更新时间:2023-12-04 13:55:53 27 4
mua khóa gpt4 Nike

我需要从 Outlook msg 文件中读取内容。目前我正在使用来自 CodeProject.com 的类(class)项目来实现这一点,因为在服务器上部署 VSTO 和 Outlook 不是一种选择。

此类从 msg 文件中获取 To、From、CC、Subject、Body 以及我需要的所有其他信息,但日期信息(例如接收日期和发送日期)除外。

有一些(真的,非常低级)tài liệu关于如何从 MSDN 上的 msg 文件中获取内容,但这有点超出了本项目的范围,并且根本没有提及日期。

理想情况下,我可以直接替换我现在使用的类(前面提到的 CodeProject 中的 OutlookStorage.cs),或者能够稍微修改现有类。要修改,我需要接收日期的正确 4 个字符的十六进制 Prop 标识符。例如,主题被列为 PR_SUBJECT = "0037"和 Body 被列为 PR_BOY = "1000" .

1 Câu trả lời

如果您使用的是 CodeProject 中的 OutlookStorage.cs,请添加以下内容:

private const string PR_RECEIVED_DATE="007D";
private const string PR_RECEIVED_DATE_2 = "0047";

...

///
/// Gets the date the message was received.
///

public DateTime ReceivedDate
{
lấy
{
if (_dateRevieved == DateTime.MinValue)
{
string dateMess = this.GetMapiPropertyString(OutlookStorage.PR_RECEIVED_DATE);
if (String.IsNullOrEmpty(dateMess))
{
dateMess = this.GetMapiPropertyString(OutlookStorage.PR_RECEIVED_DATE_2);
}
_dateRevieved = ExtractDate(dateMess);
}
return _dateRevieved;
//return ExtractDate(dateMess);
}
}

private DateTime _dateRevieved = DateTime.MinValue;

private DateTime ExtractDate(string dateMess)
{
string matchStr = "Date:";

string[] lines = dateMess.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in lines)
{
if (line.StartsWith(matchStr))
{
string dateStr = line.Substring(matchStr.Length);
DateTime response;
if (DateTime.TryParse(dateStr, out response))
{
return response;
}
}
}
return DateTime.MinValue;
}

关于outlook - 如何在没有 Outlook API 的情况下从 Outlook MSG 文件中读取接收日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1266576/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com