c# - C# 电子邮件解析。错误:程序 ... 以代码 0 (0x0) 退出
问题描述
我开发了简单的应用程序来重命名本地存储的电子邮件。电子邮件加载在列表框中,并且有一个重命名按钮。问题是我可以重命名三封电子邮件,而不是应用程序崩溃。没有报告具体错误。这是我的代码...
namespace EmailFilenameRename
{
public partial class Form1 : Form
{
CultureInfo deCulture = new CultureInfo("de-DE");
public Form1()
{
InitializeComponent();
}
private static string[] getAddressParts(string address)
{
var splittedAdress = address.Split(' ');
return splittedAdress.Last().Trim().StartsWith("<")
? new[] { string.Join(" ", splittedAdress.Take(splittedAdress.Length - 1)), splittedAdress.Last().Trim(' ', '<', '>') }
: splittedAdress;
}
private void Form1_Load(object sender, EventArgs e)
{
DirectoryInfo d = new DirectoryInfo(@"C:\...\in");
FileInfo[] Files = d.GetFiles("*.eml");
foreach (FileInfo file in Files)
{
listBox1.Items.Add(file.Name);
}
}
private void button1_Click(object sender, EventArgs e)
{
string oldName = @"C:\...\in\" + listBox1.GetItemText(listBox1.SelectedItem);
var mail = Sasa.Net.Mail.Message.Parse(File.ReadAllText(oldName));
string dt = mail.Headers["Date"].ToString();
DateTimeOffset originalTime = DateTimeOffset.Parse(dt, deCulture);
DateTime utcTime = originalTime.UtcDateTime.ToLocalTime();
string sTime = utcTime.ToString("yyyyMMdd HHmm");
string[] sFrom = getAddressParts(mail.From.ToString());
string sSubject = mail.Subject.Replace(":", "");
String newName = @"C:\...\in\renamed\" + sTime + " -- " + sFrom[1] + " -- " + sSubject + ".eml";
File.Copy(oldName, newName);
File.Delete(oldName);
}
}
}
我也尝试过使用 MimeKit ......存在同样的问题。
解决方案
推荐阅读
- reactjs - 如何在多个视图中处理突变后的缓存更新?
- r - 如何将一些数据附加到现有的 xlsx 工作表 R 中?
- saxon - 如何下载/查找 .NET 的 Saxon 示例/cs
- encoding - 将 Spotify URI 编码为 Spotify 代码
- django - Django模型记录来自书店网站的两个不同应用程序的交易
- python - 导入安装有 pipenv 的第三方模块时,VSCode 中的 Pylint 会通过抛出 no-member 错误而发疯
- laravel - Laravel 路由问题 - 所有子文件夹流量都在路由视图中结束
- javascript - 如何使用 fetch 处理流数据?
- r - 按降序列出模型系数
- python - discord.py:wait_for 超时,虽然它没有