Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SmtpClient:使用SmtpDeliveryMethod.SpecifiedPickupDirectory时忽略Bcc_C#_.net 4.0_Smtp_Bcc - Fatal编程技术网

C# SmtpClient:使用SmtpDeliveryMethod.SpecifiedPickupDirectory时忽略Bcc

C# SmtpClient:使用SmtpDeliveryMethod.SpecifiedPickupDirectory时忽略Bcc,c#,.net-4.0,smtp,bcc,C#,.net 4.0,Smtp,Bcc,2010年(当时我们仍在使用Net 2.0),我们遇到了一个问题,即在SmtpDeliveryMethod.SpecifiedPickupDirectory与SmtpClient一起使用时,邮件没有发送给Bcc收件人 在搜索web(和)之后,我采取了以下解决方法: if (message.Bcc.Count > 0) { System.Text.StringBuilder bcc = new System.Text.StringBuilder(); for (int i =

2010年(当时我们仍在使用Net 2.0),我们遇到了一个问题,即在SmtpDeliveryMethod.SpecifiedPickupDirectory与SmtpClient一起使用时,邮件没有发送给Bcc收件人

在搜索web(和)之后,我采取了以下解决方法:

if (message.Bcc.Count > 0)
{
    System.Text.StringBuilder bcc = new System.Text.StringBuilder();
    for (int i = 0; i < message.Bcc.Count; i++)
    {
        bcc.Append(message.Bcc[i].Address);
        bcc.Append(";");
    }
    message.Headers.Add("Bcc", bcc.ToString());
    message.Bcc.Clear();
}

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
smtp.PickupDirectoryLocation = PickupDir;
smtp.Send(message);
if(message.Bcc.Count>0)
{
System.Text.StringBuilder bcc=新的System.Text.StringBuilder();
对于(int i=0;i
这种解决方法的副作用是,密件抄送收件人在发送邮件的邮件头中可见,但在我们的案例中,这不是一个问题,因为密件抄送用于日志记录目的

几天前,我们切换到Net4.0(最终),问题再次出现。我试着去掉这个变通方法,但也没用

切换到SmtpDeliveryMethod。网络不是一个解决方案,因为在发送邮件时,发送方法会阻塞并让用户等待(取决于邮件服务器负载),这不是一个选项。异步发送邮件也不是一个选项,因为当发送失败或进程崩溃时,邮件将丢失


我似乎在网上找不到任何解决这个问题的方法,所以有人有什么想法吗?

这在.Net 4.0中不起作用。但它不是一个Bug,它是这样设计的。看看这个


由于.Net 3.5中似乎存在一个缺陷,允许实现您正在寻找的行为。

如果不支持这种组合(Bcc+PickupDirectory),则应在SmtpClient和/或MailMessage的帮助页面中提及。