无法发送带附件的电子邮件

时间:2012-02-15 06:25:25

标签: c# email email-attachments

我的问题是,我正在尝试在我的网站上为管理员个人使用电子邮件发送任务。

当他从可用数据中选择电子邮件ID时,添加附件并发送电子邮件,用户从未收到过该电子邮件。但是,如果他使用简单的邮件,即。没有任何附件,用户会收到它。

你能帮帮忙吗?

我的编码如下: -

public partial class SahibAdmin_emailNewsletter : System.Web.UI.Page
{
  // ... 

  private void SendNewsletter(string emailId)
  {
        System.Web.Mail.MailMessage message = new System.Web.Mail.MailMessage();
        message.To = emailId;
        message.From = "info@sahibimports.com";
        message.Subject = "Please See: Newsletter from Sahib imports";
        message.BodyFormat = System.Web.Mail.MailFormat.Text;
        message.Body = txtBody.Text.ToString();
        if (msgUpload.HasFile)
        {
              //string strFileName = msgUpload.FileName;
              //msgUpload.PostedFile.SaveAs(Server.MapPath(strFileName));
              //System.Web.Mail.MailAttachment attach =
              //  new System.Web.Mail.MailAttachment(Server.MapPath(strFileName));
              //message.Attachments.Add(attach);

              message.Attachments.Add(new Attachment(
                 FileUpload.PostedFile.InputStream, FileUpload.FileName));

        }
        System.Web.Mail.SmtpMail.Send(message);
        Response.Flush();

  }

2 个答案:

答案 0 :(得分:1)

根据http://msdn.microsoft.com/en-us/library/6sdktyws.aspx您的Attachment构造函数尝试使用第二个参数设置ContentType,但是您传入了文件名,您确定这是正确的吗?

您应该将该部分更改为:

ContentType contentType = // create suitable type here based on your file format
Attachment attachment = new Attachment(
    FileUpload.PostedFile.InputStream,
    contentType
);
attachment.ContentDisposition.FileName = FileUpload.FileName;
message.Attachments.Add(attachment);

答案 1 :(得分:0)

您正在尝试使用System。 Net .Mail.Attachment with System。 Web .Mail.MailMessage。

这些API彼此不兼容。系统。 Web .Mail.MailMessage仅支持System。 Web .Mail.MailAttachment,而非System。 Net .Mail.Attachment。