在说第 6 封电子邮件后抄送(邮件)
cc (mail) after say 6th email
我正在尝试使用 Mailaddress class 发送多封电子邮件 (>10) 但显然,它不喜欢它。
有没有办法将 6 号之后的电子邮件附加到抄送?
或任何其他解决方法?
我有:
(<email1@test.com>; <email2@test.com>; <email3@test.com>, <email4@test.com>; <email5@test.com>; \r\n\t<email6@test.com>, <email7@test.com>; <email8@test.com>\r\n\TEXT)
我愿意Environment.NewLine,
我将 < 、 > 、 \t 和 " " 替换为 ""(不知道其他更好的格式化方式)
当我尝试通过邮件地址 class 发送时,出现格式错误。
但是当电子邮件数量较少时工作正常。
Solved:
string to = "";
string cc = "";
int i = 0;
foreach (string item in multiAddress.Split(','))
{
i += 1;
if (i < 10)
{
to += item + ",";
}
else
{
cc += item + ",";
}
}
to = to.Remove(to.Length - 1);
cc = cc.Remove(cc.Length - 1);
为什么不能使用常规方式向多个地址发送电子邮件?变成一个字符串,像这样用逗号分隔:
string recipients="email1@test.com,email2@test.com,email3@test.com" etc..
我个人在尝试发送给超过 9 个收件人时遇到错误,因此我编写了以下代码片段,在第 9 个收件人之后它会自动将收件人移动到 CC 字段。
var emailAddresses= "YourEmailAddresses";
//conccatenat all the email addresses into one variable
//if there is more than 9 recipients it moves them to the CC field
string to="";
string cc = "";
int i = 0;
foreach (string item in emailAddresses) {
i += 1;
if (i < 10) {
to += item + ",";
}
else
{
cc += item + ",";
}
to = to.Remove(to.Length - 1);
如果您使用循环,请确保删除字符串中的最后一个逗号(因为它会在每个条目后添加一个逗号,因此您将在最后一封电子邮件后多出一个逗号)。
您可以使用正则表达式将邮件地址与其他字符隔离开来
例如:
(<)(\w+@\w+\.\w+)(>)
将匹配角度之间的任何邮件地址。
string source = "(<email1@test.com>; <email2@test.com>; <email3@test.com>, <email4@test.com>; <email5@test.com>; \r\n\t<email6@test.com>, <email7@test.com>; <email8@test.com>\r\nTEXT)";
Regex regx = new Regex(@"(<)(\w+@\w+\.\w+)(>)");
MatchCollection matches = regx.Matches(source);
foreach (Match match in matches) {
Console.WriteLine(match.Groups[2].Value);
}
您也可以使用 skip 方法使用常规 C# 代码编写代码来获取抄送邮件,如下所示
public static string[] GetCCEmails()
{
const int limitToIncludeCC = 10 ;// no of email to be skipped
string[] emailAdresses = new string[] { "emailadress1@xx.com", "emailadress2@xx.com", "emailadress2@xx.com", "emailadress3@xx.com", "emailadress4@xx.com", "emailadress5@xx.com" };
var ccmailIDs = emailAdresses.Skip(limitToIncludeCC);
return ccmailIDs.ToArray();
}
并将此数组分配给 System.Net.Mail 的 MailMessage class 的 CC 属性。
我正在尝试使用 Mailaddress class 发送多封电子邮件 (>10) 但显然,它不喜欢它。 有没有办法将 6 号之后的电子邮件附加到抄送?
或任何其他解决方法?
我有:
(<email1@test.com>; <email2@test.com>; <email3@test.com>, <email4@test.com>; <email5@test.com>; \r\n\t<email6@test.com>, <email7@test.com>; <email8@test.com>\r\n\TEXT)
我愿意Environment.NewLine, 我将 < 、 > 、 \t 和 " " 替换为 ""(不知道其他更好的格式化方式)
当我尝试通过邮件地址 class 发送时,出现格式错误。 但是当电子邮件数量较少时工作正常。
Solved:
string to = ""; string cc = ""; int i = 0; foreach (string item in multiAddress.Split(',')) { i += 1; if (i < 10) { to += item + ","; } else { cc += item + ","; } } to = to.Remove(to.Length - 1); cc = cc.Remove(cc.Length - 1);
为什么不能使用常规方式向多个地址发送电子邮件?变成一个字符串,像这样用逗号分隔:
string recipients="email1@test.com,email2@test.com,email3@test.com" etc..
我个人在尝试发送给超过 9 个收件人时遇到错误,因此我编写了以下代码片段,在第 9 个收件人之后它会自动将收件人移动到 CC 字段。
var emailAddresses= "YourEmailAddresses";
//conccatenat all the email addresses into one variable
//if there is more than 9 recipients it moves them to the CC field
string to="";
string cc = "";
int i = 0;
foreach (string item in emailAddresses) {
i += 1;
if (i < 10) {
to += item + ",";
}
else
{
cc += item + ",";
}
to = to.Remove(to.Length - 1);
如果您使用循环,请确保删除字符串中的最后一个逗号(因为它会在每个条目后添加一个逗号,因此您将在最后一封电子邮件后多出一个逗号)。
您可以使用正则表达式将邮件地址与其他字符隔离开来 例如:
(<)(\w+@\w+\.\w+)(>)
将匹配角度之间的任何邮件地址。
string source = "(<email1@test.com>; <email2@test.com>; <email3@test.com>, <email4@test.com>; <email5@test.com>; \r\n\t<email6@test.com>, <email7@test.com>; <email8@test.com>\r\nTEXT)";
Regex regx = new Regex(@"(<)(\w+@\w+\.\w+)(>)");
MatchCollection matches = regx.Matches(source);
foreach (Match match in matches) {
Console.WriteLine(match.Groups[2].Value);
}
您也可以使用 skip 方法使用常规 C# 代码编写代码来获取抄送邮件,如下所示
public static string[] GetCCEmails()
{
const int limitToIncludeCC = 10 ;// no of email to be skipped
string[] emailAdresses = new string[] { "emailadress1@xx.com", "emailadress2@xx.com", "emailadress2@xx.com", "emailadress3@xx.com", "emailadress4@xx.com", "emailadress5@xx.com" };
var ccmailIDs = emailAdresses.Skip(limitToIncludeCC);
return ccmailIDs.ToArray();
}
并将此数组分配给 System.Net.Mail 的 MailMessage class 的 CC 属性。