所以我正在创建一个程序,用于通过.txt文件通过电子邮件发送用户列表。这是我到目前为止所拥有的。
MailAddress from = new MailAddress("testadmin@gmail.com", "MAIL BOT TEST");
MailAddress to = new MailAddress("testadmin", "Admin");
MailMessage message = new MailMessage(from, to);
using (StreamReader sr3 = new StreamReader(@"C:\Data\Items\emailItems.txt"))
{
string emailList;
emailList = sr3.ReadToEnd();
MailAddress bcc = new MailAddress(emailList);
message.Bcc.Add(bcc);
Console.WriteLine(emailList);
MessageBox.Show("" + emailList, "Email List", MessageBoxButtons.OK);
}
emailList不起作用,因为它抛出异常并且需要:
MailAddress bcc = new MailAddress("manager1@contoso.com");
以下是.txt的格式。我应该把评论分开吗?
test01@gmail.com
test02@gmail.com
以下是抛出的异常:
{"The specified string is not in the form required for an e-mail address."}
谢谢和干杯, 肖恩。
答案 0 :(得分:1)
尝试循环浏览BCC列表,而不是尝试立即添加。您将看到是否存在问题,当抛出支出时,它仍然是哪个邮件地址。
答案 1 :(得分:1)
MailAddress只能使用一个地址,而不是一个列表,因此您需要为每个收件人添加一个MailAddress到Bcc。
假设您的文本文件中每个电子邮件地址都在一行(并且您的问题表明它有),请尝试以下操作:
string[] recipients = File.ReadAllLines(@"C:\Data\Items\emailItems.txt");
string recipient;
foreach (var recipientLine in recipients)
{
// Just to take care of leading/trailing spaces and blank lines
recipient = recipientLine.Trim();
if (!string.IsNullOrEmpty(recipient))
{
MailAddress bcc = new MailAddress(recipient);
message.Bcc.Add(bcc);
}
}