2012-02-15 104 views
-3

我的问题是,我试图使用电子邮件发送任务在我的网站上的管理员。无法发送带附件的电子邮件

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

    } 
+0

也许附件在某种程度上被政策阻止。如果电子邮件反弹,sahibimports.com域名是否会以任何有意义的方式处理反弹,或者反弹只会落在地板上?你有没有尝试发送到不同的电子邮件帐户,并通过不同的SMTP服务器?你看过SMTP日志吗?你是否检查过SMTP服务器上的队列/死信邮件文件夹? – 2012-02-15 06:29:09

+0

运行代码时是否遇到异常? – M4N 2012-02-15 07:23:42

+0

是的AARON我做到了 – 2012-02-15 08:02:19

回答

1

根据http://msdn.microsoft.com/en-us/library/6sdktyws.aspxAttachment构造函数试图设置的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); 
0

您要使用系统。 Net .Mail.Attachment with System。 Web .Mail.MailMessage。

这些API是互不兼容的。系统。 Web .Mail.MailMessage只支持System。 Web .Mail.MailAttachment,而不是系统。 Net .Mail.Attachment。

相关问题