【问题标题】:Unable to send E-mail with Attachment无法发送带附件的电子邮件
【发布时间】:2012-02-15 06:25:25
【问题描述】:

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

当他从可用数据中选择电子邮件 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();

  }

【问题讨论】:

  • 也许附件被策略阻止了。如果一封电子邮件被退回,sahibimports.com 域是否会以任何有意义的方式处理退回邮件,或者退回邮件是否会掉在地板上?您是否尝试过通过不同的 SMTP 服务器发送到不同的电子邮件帐户?您是否查看过 SMTP 日志?你检查过 SMTP 服务器上的队列/死信文件夹吗?
  • 运行代码时是否出现异常?

标签: c# email email-attachments


【解决方案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);

【讨论】:

    【解决方案2】:

    您正在尝试将 System.Net.Mail.Attachment 与 System.Web.Mail.MailMessage 一起使用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-11
      • 2015-08-28
      • 2013-04-16
      • 2014-04-23
      • 2019-03-09
      • 2015-09-09
      相关资源
      最近更新 更多