【问题标题】:Sending Attachment from Resources从资源发送附件
【发布时间】:2014-02-05 17:14:24
【问题描述】:

好吧,我知道有一个简单的解决方案可以解决我的一生,尽管我找不到它。我想通过邮件发送附件,现在我有了它,所以它认为它将发送一个附件,例如:

message.To.Add(recieve + "@txt.att.net");
message.From = new MailAddress(user);
message.Subject = subject;
message.Body = body;
message.Attachments.Add(new Attachment(add_photo.FileName));
client.Send(message);

你知道,但是如果 add_photo(The File Dialog) 是 emtpy 它会抛出错误,我尝试为它添加一个 catch 语句,但程序几乎崩溃了(不像崩溃而是功能方面的崩溃)。

无论如何,我在想如果对话框没有选择文件,我就自己设置一个,很小的东西甚至都无所谓。所以我的资源中有一张名为“DD.png”的图片,如果对话框中没有文件,我想设置它有什么想法吗?

这是我所拥有的:

if (!string.IsNullOrEmpty(add_photo.FileName))
{
    add_photo.FileName = (Path.GetFullPath(Turbo_Bomber.Properties.Resources.DD.ToString()));
}
#region Providers
if (provider == "AT&T")
{
    message.To.Add(recieve + "@txt.att.net");
    message.From = new MailAddress(user);
    message.Subject = subject;
    message.Body = body;
    message.Attachments.Add(new Attachment(add_photo.FileName));
    client.Send(message);
} // etc

有什么想法吗?谢谢各位。

【问题讨论】:

    标签: c# .net email system.net


    【解决方案1】:

    坚持你的第一次尝试,稍微改变一下:

    message.To.Add(recieve + "@txt.att.net");
    message.From = new MailAddress(user);
    message.Subject = subject;
    message.Body = body;
    if (!string.IsNullOrEmpty(add_photo.FileName))
    {
        message.Attachments.Add(new Attachment(add_photo.FileName));
    }    
    client.Send(message);
    

    现在您不需要添加“神秘”附件。

    【讨论】:

    • 是的,但是如果没有要发送的附件怎么办,它会抛出 FileNotFoundExpection 不是吗?
    • message.Attachments.Add(new Attachment(add_photo.FileName));它会尝试附加一些不存在的东西,并且会抛出 FileNotFound 异常。
    • 更改的重点是,如果没有文件名,则不会创建附件。没有附件,它不会尝试附加不存在的东西。没有错误。
    • 仍然抛出一个错误:“在 mscorlib.dll 中发生了 'System.IO.FileNotFoundException' 类型的第一次机会异常”
    • 那么您在 add_photo.FileName 中的文件名无效?
    猜你喜欢
    • 2015-07-27
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多