【问题标题】:Can not attach multiple files in the attachment of email in C#无法在 C# 中的电子邮件附件中附加多个文件
【发布时间】:2012-09-03 14:56:15
【问题描述】:

在我的项目中,我需要附加多个文件来发送邮件,我正在这样做

        if (fDialog.ShowDialog() == DialogResult.OK)
        {
            textBox6.Text += fDialog.FileName.ToString() + ";";
        }

这里我将文件附加到 textbox6 中

我使用“;”分隔不同附件文件的路径然后我将附件的这些路径分开如下,然后发送。

         System.Net.Mail.Attachment attachment;
        foreach (string m in textBox6.Text.Split(';'))
        {
            attachment = new System.Net.Mail.Attachment(m);
            message.Attachments.Add(attachment);
        }

这种方法对我不起作用。但是,当我使用以下代码发送带有单个附件的邮件时,它就可以正常工作

        System.Net.Mail.Attachment attachment;
        attachment = new System.Net.Mail.Attachment(textBox6.Text.ToString());
        message.Attachments.Add(attachment);

请有人帮忙。我一直在工作一整天,无法弄清楚。

【问题讨论】:

  • 你调试了吗?实际上是在调试器中通过的?我敢打赌,你的道路不是你想象的那样。

标签: c# email


【解决方案1】:

然后创建一个附件列表框-

                if (Attachmentlistbox.Items.Count != 0)
                {
                    for (int i = 0; i < Attachmentlistbox.Items.Count; i++)
                        mailMessage.Attachments.Add(new Attachment(Attachmentlistbox.Items[i].ToString()));
                }

【讨论】:

  • 创建一个列表框并通过 OpenFileDialog 方法在列表框中添加您的文件路径。然后这段代码必须工作....如果不工作,让我知道什么错误显示......
【解决方案2】:

希望这能彻底解决你的问题http://archive.msdn.microsoft.com/CSharpGmail

【讨论】:

  • 谢谢哥们,你拯救了这一天。
【解决方案3】:

尝试使用文件流而不是文件上的链接:

message.Attachments.Add(new Attachment(attachmentFileStream, fileNameOnly));

【讨论】:

    【解决方案4】:

    函数应该是:

    foreach (string m in textBox6.Text.Split(';'))
    {
       System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(m);
       message.Attachments.Add(attachment);
    }
    

    这将解决您的问题。

    【讨论】:

    • @user1478137,您是否调试过代码并且调试器是否正在进入循环?还分享您在文本框中的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2023-03-07
    • 1970-01-01
    • 2013-02-14
    相关资源
    最近更新 更多