I have a gridview with product details(Id, Name, Product Catalog Image) binded from a database. 
Now i want to select products from the gridview & mail them to the list of emails(specifed earlier) Please tell me how can i create a module through which i can acheive this task. Any other suggestion that could siplify the task of selecting catalog and mailing welcome.

Well the catalog will be in the form of any attachment & the product details as a PDF file containing the details of the selected products.
I tried this code on button click but this code is mailing all files rather than the selected checkbox files. The images files are in database.
protected void btnSendMail_Click(object sender, EventArgs e)
{
 
    MailMessage mm = new MailMessage();
    mm.From = new MailAddress("futureminds99@gmail.com");
    mm.To.Add("futureminds99@gmail.com");
    mm.Subject = "Catalog As Required";
    mm.Body = "this content is in the body";
     
     
    string sContent = string.Empty;
    sContent = "<table><tr><td>Product Name</td><td>Product Image</td><tr>";
    string sServerUrl = "https://shop.askdabur.com/";
    string sToMailId = "ashish.mishra@mrm-mccann.com";
    string sAttchent = string.Empty;
    string attachmentPath = string.Empty;
    foreach (GridViewRow row in gvProduct.Rows)
    {
        int rowIndex = row.RowIndex;
        string ProductID = Convert.ToString(gvProduct.DataKeys[rowIndex].Values["ProductMasterID"]);
        CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");
        Label lblProductname = (Label)row.FindControl("lblProductname");
        Label lblProductImage = (Label)row.FindControl("lblProductImage");
        string sProoductName = string.Empty;
        string sProductImage = string.Empty;
        if (chkSelect.Checked)
        {
 
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "SELECT * FROM ProductDetails";
            cmd.Connection = con;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    byte[] barrImg = (byte[])dt.Rows[i]["ProductImageLink"];
                    byte[] data = GetData(barrImg);
                    MemoryStream ms = new MemoryStream(data);
                    mm.Attachments.Add(new Attachment(ms, dt.Rows[i]["Name"].ToString(), dt.Rows[i]["ContentType"].ToString()));
                    // Label1.Text = TextBox1.Text;
                }
            }
        }
 
    }
     
        mm.Subject = "IEMCO Quotaion ";
       // mm.Body = "Greeting,<br/><br/>Thanks for choosing IEMCO as your business partner.<br/><br/>As discussed, the quotation of requested product is attached herewith this mail.<br/><br/> Please have a look & let us know your final requirement.<br/><br/>";
       // mm.Attachments.Add(new Attachment(crystalReport.ExportToStream(ExportFormatType.PortableDocFormat), "Report.pdf"));
 
         
 
        mm.IsBodyHtml = true;
        mm.Body += sContent;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        NetworkCredential credential = new NetworkCredential();
        credential.UserName = "futureminds99@gmail.com";
        credential.Password = "Khyali_009";
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = credential;
        smtp.Port = 587;
        smtp.EnableSsl = true;
        smtp.Send(mm);
       // Label1.Visible = true;
       // Label1.Text = "Data Sent";
}