web-dev-qa-db-fra.com

Comment envoyer un courriel avec pièce jointe dans Asp.Net

Je dois attacher une image avec mon email dans asp.net le fichier est déjà ajouté dans la solution Explorer mais je ne sais pas comment ajouter cela avec mon email s'il vous plaît guidez-moi

Mon code actuel est donné ci-dessous

public void SendMail()
{
    try
    {
        string receiverEmailId = "[email protected]";
        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)
    {
    }
}
11
Optimus

Avez-vous extrait MailMessage.Attachments property (voir 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);
22
Pilgerstorfer Franz

créer un objet de la classe Attachment avec le nom de fichier et l'ajouter à la propriété Attachments du message

  Attachment attachment = new Attachment("file.ext");
  message.Attachments.Add(attachment);
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;
        }
    }  

Référence

4
Ryan

Envoi d'email avec pièce jointe en ASP.Net avec un codage simple. Dans cet article, je vais vous montrer comment vous pouvez le faire.

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 = “[email protected]”;
string textTo = “[email protected]”;
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/

1
Surya R Praveen

Voici un code ...

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("[email protected]");
        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('Enquiery submitted sucessfully');", true);
    }
    catch (Exception ex)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "message", "alert('"+ex.Message+"');", true);
    }
}
1
Ratna
protected void Send_Button_Click(object sender, EventArgs e)
{

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("[email protected]");
    mail.To.Add(new MailAddress("[email protected]"));
    mail.Bcc.Add(new MailAddress("[email protected]"));
    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 = "[email protected]";
    credential.Password = "123456789";

    smtp.Credentials = credential;
    smtp.EnableSsl = true;
    smtp.Send(mail);
}
0
Md Shahriar