这是我用来从具有扩展名的文件夹中获取所有名称的代码
string[] files = Directory.GetFiles(@"D:\DLogs\Notification11");
foreach (string file in files)
{
//Console.WriteLine(Path.GetFileName(file));
listOfFiles.Add(Path.GetFileName(file));
mailBeeTask(listOfFiles);
}
现在的问题是在mailBeeTask(listOfFiles)中,我给文件名加上扩展名,但是mailbee使用
mailer.Message.LoadMessage(@"D:\DLogs\Notification11\mailbee.eml");
这是mailbee代码
public static void mailBeeTask(IList<string> ListOfTasks)
{
//send emails
Smtp mailer = new Smtp();
// Use SMTP relay server with authentication.
mailer.SmtpServers.Add("smtp.domain.com", "[email protected]",
"secret");
// Load the message from .EML file (it must be in MIME RFC2822
format).
mailer.Message.LoadMessage(@"D:\DLogs\Notification11\mailbee.eml");
**//this above line is the problem, how can i use ListOfTasks
instead
//of mailbee.eml should i concatenate or what??**
// Demonstrate that we can modify the loaded message.
// Update the date when the message was composed to the current
moment.
mailer.Message.Date = DateTime.Now;
mailer.Send();
}
Mailbee用于发送afterlogic发出的电子邮件。
最佳答案
按照逻辑,您要在给定目录中发送所有消息文件。由于单个文件本身就是一条完整的消息,因此您必须分别发送每个文件/消息。
您正确获取所有文件。但是随后您必须为每个文件执行mailBeeTask
。
因此,每行中的两行将
mailBeeTask(file);
并且
mailBeeTask
的签名必须更改为public static void mailBeeTask(string filename)
然后在最后一次更改中使用参数
mailer.Message.LoadMessage(filename);
现在,您的代码将遍历指定目录中的所有文件,然后将使用完整文件名作为参数调用
mailBeeTask
方法。然后,该方法将加载单个文件,修改日期并将其发送。在OP中使用给定的代码,您还将遭受以下困扰:首先将文件添加到
listOfFiles
,然后对列表中的每个文件执行mailBeeTask
。在下一次迭代中,这将导致再次将列表中的所有先前文件作为参数提供。使用已经工作的代码,您将在一次迭代中发送所有先前的文件和当前文件。