【问题标题】:How to Send Email With Attachment In Asp.Net如何在 Asp.Net 中发送带附件的电子邮件
【发布时间】:2013-02-07 15:43:01
【问题描述】:

我需要在 asp.net 中用我的电子邮件附加一张图片,该文件已添加到解决方案资源管理器中,但我不知道如何在我的电子邮件中添加此图片,请指导我

我当前的代码如下

public void SendMail()
{
    try
    {
        string receiverEmailId = "name@exmp.com";
        string senderName = ConfigurationManager.AppSettings["From"].ToString();
        string mailServer = ConfigurationManager.AppSettings["SMTPServer"].ToString(); ;
        string senderEmailId = ConfigurationManager.AppSettings["SMTPUserName"].ToString();
        string password = ConfigurationManager.AppSettings["SMTPPasssword"].ToString();
        var fromAddress = new MailAddress(senderEmailId, senderName);
        var toAddress = new MailAddress(receiverEmailId, "Alen");
        string subject = "subject";
        string body = "body.";
        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
                    Port = 587,
                    EnableSsl = true,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    Credentials = new NetworkCredential(fromAddress.Address, password)
        };
        using (var message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            Body = body
        })
        {
            smtp.Send(message);
        }
    }
    catch (Exception ex)
    {
    }
}

【问题讨论】:

    标签: c# asp.net smtp


    【解决方案1】:

    使用文件名创建Attachment 类的对象并将其添加到消息的附件属性中

      Attachment attachment = new Attachment("file.ext");
      message.Attachments.Add(attachment);
    

    【讨论】:

      【解决方案2】:

      这是一个代码...

      public void MailSend(string strfrom, string strto, string strSubject, string strBody, string resumename, string sresumename)
      {
          try
          {
              MailMessage msg = new MailMessage(strfrom, strto);// strEmail);
             
              msg.Bcc.Add("xx@xxxx.com");
              msg.Body = strBody;
              msg.Subject = strSubject;
              msg.IsBodyHtml = true;
              if (resumename.Length > 0)
              {
                  Attachment att = new Attachment(Server.MapPath(VirtualPathUtility.ToAbsolute("~/User_Resume/" + resumename)));
                  msg.Attachments.Add(att);
              }
              if (sresumename.Length > 0)
              {
                  Attachment att1 = new Attachment(Server.MapPath(VirtualPathUtility.ToAbsolute("~/User_Resume/" + sresumename)));
                  msg.Attachments.Add(att1);
              }
              System.Net.Mail.SmtpClient cli = new System.Net.Mail.SmtpClient("111.111.111.111",25);
              cli.Credentials = new NetworkCredential("nnnnnnn", "yyyyyy");
              cli.Send(msg);
              msg.Dispose();
              ScriptManager.RegisterStartupScript(this, this.GetType(), "message", "alert('Inquiry submitted successfully');", true);
          }
          catch (Exception ex)
          {
              ScriptManager.RegisterStartupScript(this, this.GetType(), "message", "alert('"+ex.Message+"');", true);
          }
      }
      

      【讨论】:

        【解决方案3】:

        您是否查看了MailMessage.Attachments 属性(请参阅 MSDN)?

        // create attachment and set media Type
        //      see http://msdn.microsoft.com/de-de/library/system.net.mime.mediatypenames.application.aspx
        Attachment data = new Attachment(
                                 "PATH_TO_YOUR_FILE", 
                                 MediaTypeNames.Application.Octet);
        // your path may look like Server.MapPath("~/file.ABC")
        message.Attachments.Add(data);
        

        【讨论】:

          【解决方案4】:
          public static bool SendMail(string strFrom, string strTo, string strSubject, string strMsg)
              {            
                  try
                  {                
                      // Create the mail message
                      MailMessage objMailMsg = new MailMessage(strFrom, strTo);
          
                      objMailMsg.BodyEncoding = Encoding.UTF8;
                      objMailMsg.Subject = strSubject;
                      objMailMsg.Body = strMsg;
                      Attachment at = new Attachment(Server.MapPath("~/Uploaded/txt.doc"));
                      objMailMsg.Attachments.Add(at);
                      objMailMsg.Priority = MailPriority.High;
                      objMailMsg.IsBodyHtml = true;
          
                      //prepare to send mail via SMTP transport
                      SmtpClient objSMTPClient = new SmtpClient();
                      objSMTPClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
                      objSMTPClient.Send(objMailMsg);
                      return true;                
                  }
                  catch (Exception ex)
                  {
                      throw ex;
                  }
              }  
          

          Reference

          【讨论】:

            【解决方案5】:

            在 ASP.Net 中使用简单的编码发送带有附件的电子邮件。在本文中,我将向您展示如何做到这一点。

            Index.aspx

            <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="_Default" Debug="true" %>
            
            <!DOCTYPE html>
            
            <html xmlns="http://www.w3.org/1999/xhtml">
            
            <head runat="server">
            <title>Careers</title>
            </head>
            
            <body>
            <form id="form2" runat="server">
            
            <div class="form-group">
            <label for="exampleInputName">Name</label>
            <asp:TextBox ID="txtName" runat="server" class="form-control" placeholder="Name"></asp:TextBox>
            </div>
            <div class="form-group">
            <label for="exampleInputEmail">Email address</label>
            
            <asp:TextBox ID="txtEmail" runat="server" class="form-control" placeholder="Enter Email"></asp:TextBox>
            </div>
            <div class="form-group">
            <label for="txtcontact">Contact no</label>
            <asp:TextBox ID="txtcontact" runat="server" class="form-control" placeholder="Contact no"></asp:TextBox>
            </div>
            <div class="form-group">
            <label for="txtjobTitle">Job Title</label>
            <asp:DropDownList ID="txtjobTitle" runat="server" class="form-control">
            <asp:ListItem Text="Select" Value="0"></asp:ListItem>
            <asp:ListItem Text="Social Media Experts" Value="1"></asp:ListItem>
            <asp:ListItem Text="Business Developement Executives" Value="2"></asp:ListItem>
            <asp:ListItem Text="Copywriters" Value="3"></asp:ListItem>
            <asp:ListItem Text="Graphic Designers" Value="4"></asp:ListItem>
            <asp:ListItem Text="Web Designers" Value="5"></asp:ListItem>
            <asp:ListItem Text="Animation Designers" Value="6"></asp:ListItem>
            </asp:DropDownList>
            </div>
            <div class="form-group">
            <label for="txtjobExp">Experience</label>
            <asp:DropDownList ID="txtjobExp" runat="server" class="form-control">
            <asp:ListItem Text="Select" Value="0"></asp:ListItem>
            <asp:ListItem Text="0-1" Value="1"></asp:ListItem>
            <asp:ListItem Text="1-3" Value="2"></asp:ListItem>
            <asp:ListItem Text="3-5" Value="3"></asp:ListItem>
            </asp:DropDownList>
            </div>
            <div class="form-group">
            <label for="exampleInputFile">Upload Resume</label>
            <asp:FileUpload ID="fileUploader" runat="server" />
            </div>
            
            <asp:Button ID="bttn_Send" Text="Submit" runat="server" OnClick="bttn_Send_Click" class="btn" />
            </form>
            </body>
            
            </html>
            

            Index.aspx.cs

            using System;
            using System.Collections.Generic;
            using System.IO;
            using System.Linq;
            using System.Net;
            using System.Net.Mail;
            using System.Web;
            using System.Web.UI;
            using System.Web.UI.WebControls;
            
            public partial class _Default : System.Web.UI.Page
            {
            protected void Page_Load(object sender, EventArgs e)
            {
            
            }
            protected void bttn_Send_Click(object sender, EventArgs e)
            {
            string from = “info@suryarpraveen-wordpress.com”;
            string textTo = “careers@suryarpraveen-wordpress.com”;
            using (MailMessage mail = new MailMessage(from, textTo))
            {
            
            mail.Subject = “Careers – Surya R Praveen WordPress”;
            
            mail.Body = string.Format(@”
            Name: {0}
            Email: {1}
            Contact: {2}
            Job: {3}
            Experience: {4}
            “, txtName.Text, txtEmail.Text, txtcontact.Text, txtjobTitle.SelectedItem.Text, txtjobExp.SelectedItem.Text);
            
            if (fileUploader.HasFile)
            {
            string fileName = Path.GetFileName(fileUploader.PostedFile.FileName);
            mail.Attachments.Add(new Attachment(fileUploader.PostedFile.InputStream, fileName));
            }
            mail.IsBodyHtml = false;
            SmtpClient smtp = new SmtpClient();
            smtp.Host = “mail.suryarpraveen-wordpress.com”;
            smtp.EnableSsl = false;
            NetworkCredential networkCredential = new NetworkCredential(from, “password@007”);
            smtp.UseDefaultCredentials = true;
            smtp.Credentials = networkCredential;
            smtp.Port = 25;
            smtp.Send(mail);
            ClientScript.RegisterStartupScript(GetType(), “alert”, “alert(‘Message has been sent successfully.’);”, true);
            }
            }
            }
            

            https://suryarpraveen.wordpress.com/2017/08/22/how-to-send-email-with-attachment-in-asp-net/

            【讨论】:

              【解决方案6】:
              protected void Send_Button_Click(object sender, EventArgs e)
              {
              
                  MailMessage mail = new MailMessage();
              
                  mail.From = new MailAddress("One@gmail.com");
                  mail.To.Add(new MailAddress("Two@yahoo.com"));
                  mail.Bcc.Add(new MailAddress("Three@gmail.com"));
                  mail.Subject = "Testing E-mail By ASP.NET";
                  mail.Body = "This is only for Demo ";
              
                  if (FileUpload1.HasFile)
                  {
                      Attachment attach = new Attachment(FileUpload1.PostedFile.InputStream ,FileUpload1.PostedFile.FileName);
              
                      mail.Attachments.Add(attach);
                  }
              
              
                  SmtpClient smtp = new SmtpClient();
                  smtp.Host = "smtp.gmail.com";
                  smtp.Port = 587;
                  smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
              
                  System.Net.NetworkCredential credential = new System.Net.NetworkCredential();
              
                  credential.UserName = "One@gmail.com";
                  credential.Password = "123456789";
              
                  smtp.Credentials = credential;
                  smtp.EnableSsl = true;
                  smtp.Send(mail);
              }
              

              【讨论】:

                猜你喜欢
                • 2021-11-24
                • 2012-06-07
                • 2015-08-28
                • 2019-01-18
                • 1970-01-01
                • 1970-01-01
                • 2011-01-28
                • 2014-04-24
                相关资源
                最近更新 更多