web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :

Send e-mail with attachment & templates

Roberto Stefanetti Profile Picture Roberto Stefanetti 12,998

A my short C# script to "send e-mail with attachment & template". Un breve script c# per inviare e-mail con allegato e template usage/utilizzo>> compile a DLL .NET usable on Windos Systems>> compila una DDL .NET e richiamala da Windows

Published on MSDN Script Center

http://gallery.technet.microsoft.com/scriptcenter/0c32d24a-3651-4fe1-8d10-80f9c6440a70

MY MSDN Script

Copy code
C#
 
main functions 
 
-setMail(string parfrom, string parto, string parcc, string parsubject, string partextmessage, string parpathattach, string parpathtemplate) 
 
-sendMail() 
 
 
------------------------------------------------ 
-- ALL SCRIPT-------------------------------- 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Runtime.InteropServices; 
using System.IO; 
using System.Collections; 
using System.Net.Mail; 
using System.Web; 
using System.Net.Mime; 
 
namespace MailComponent 
{ 
    [ComVisible(true)] 
    [Guid("41E646B3-F65C-4d8e-8539-499FA56C7075")] 
    [ProgId("MailComponent")]  
    [ClassInterface(ClassInterfaceType.AutoDual)]  
 
    public class HTMLMail 
    { 
        MailMessage mail; 
        string a_server; 
        string a_user; 
        string a_pass; 
        bool a_enablessl; 
 
        public Int16 setAccount(string l_server, string l_user, string l_pass,bool l_enablessl) 
        { 
            a_server = l_server; 
            a_user = l_user; 
            a_pass = l_pass; 
            a_enablessl = l_enablessl; 
            return 1; 
        } 
        public Int16 setMail(string parfrom, string parto, string parcc, string parsubject, string partextmessage, string parpathattach, string parpathtemplate) 
        { 
            try 
            { 
                //create the mail messageMail 
                mail = new MailMessage(); 
 
                //set the addresses 
                try 
                { 
                    mail.From = new MailAddress(parfrom); 
                } 
                catch (Exception) 
                { 
                    return -1; 
                } 
 
                try 
                { 
                    //mail.To.Add(new MailAddress(parto)); 
                    MailAddressCollection mailAddColl = new MailAddressCollection(); 
                    mailAddColl.Add(parto); 
                    for (int i = 0; i < mailAddColl.Count; i++) 
                        mail.To.Add(new MailAddress(mailAddColl[i].ToString())); 
                } 
                catch (Exception) 
                { 
                    return -2; 
                } 
 
                try 
                { 
                    if (parcc.CompareTo("") != 0) 
                    { 
                        //mail.CC.Add(new MailAddress(parcc)); 
                        MailAddressCollection mailAddColl = new MailAddressCollection(); 
                        mailAddColl.Add(parcc); 
                        for (int i = 0; i < mailAddColl.Count; i++) 
                            mail.CC.Add(new MailAddress(mailAddColl[i].ToString())); 
                    } 
                } 
                catch (Exception) 
                { 
                    return -3; 
                } 
 
                //set the content 
                mail.Subject = parsubject; 
                mail.IsBodyHtml = true; 
 
                //create the LinkedResource (embedded image) 
                List<LinkedResource> imagelist = new List<LinkedResource>(); 
 
                //create the view 
                //AlternateView plainView = AlternateView.CreateAlternateViewFromString("This is my text , viewable by those clients that don't support html", null, "text/plain"); 
                string htmlstring; 
                try 
                { 
                    StreamReader reader = new StreamReader(Path.Combine(parpathtemplate, @"template.html")); 
                    htmlstring = reader.ReadToEnd(); 
                } 
                catch (Exception) 
                { 
                    return -4; 
                } 
 
                bool flag = true; 
                int index = 0; 
                int position; 
                string estensione; 
                do 
                { 
                    position = htmlstring.IndexOf(string.Format("src=embimage{0}", index + 1)); 
                    if (position > 0) 
                    { 
                        estensione = htmlstring.Substring(position + 143); 
                        htmlstring = htmlstring.Remove(position + 134); 
                        htmlstring = htmlstring.Replace( 
                                           (string.Format("src=embimage{0}", index + 1)), 
                                           (string.Format("src=cid:embimage{0}", index + 1)) 
                                           ); 
                        imagelist.Add(new LinkedResource((string.Format("{0}\\embimage{1}.{2}", parpathtemplate, index + 1, estensione)), 
                                                          System.Net.Mime.MediaTypeNames.Image.Jpeg)); 
                        imagelist[index].ContentId = string.Format("embimage{0}", index + 1); 
                    } 
                    else 
                        flag = false; 
                    index++; 
                } while (flag); 
 
                //temporanea = new LinkedResource(pathtemplate, System.Net.Mime.MediaTypeNames.Image.Jpeg); 
                //temporanea.ContentId = string.Format("embimage{0}", index + 1); 
                //string htmlstring = string.Format("<html><body><img src=cid:logoaltea><br><br>{0}</body></html>", textmessage); 
                string textmessage1 = string.Format(htmlstring, partextmessage); 
                AlternateView htmlView = AlternateView.CreateAlternateViewFromString(textmessage1, null, System.Net.Mime.MediaTypeNames.Text.Html); 
 
                //add the LinkedResource to the appropriate view 
                //htmlView.LinkedResources.Add(logo); 
                for (int i = 0; i < imagelist.Count; i++) 
                { 
                    htmlView.LinkedResources.Add(imagelist[i]); 
                } 
 
                //attachment 
                try 
                { 
                    Attachment attachFile = new Attachment(parpathattach.Replace(@"\", @"\\")); 
                    mail.Attachments.Add(attachFile); 
                } 
                catch (Exception) 
                { 
                    return -5; 
                } 
 
                //add the views 
                mail.AlternateViews.Add(htmlView); 
                return 1; 
            } 
            catch (Exception) 
            { 
                 
                return -6; 
            } 
        } 
        public Int16 sendMail() 
        { 
            try 
            { 
                //send the message 
                SmtpClient smtp = new SmtpClient(a_server); 
                if (a_enablessl) 
                  smtp.EnableSsl = true; 
                smtp.Credentials = new System.Net.NetworkCredential(a_user, a_pass); 
                smtp.Send(mail); 
                return 1; 
            } 
            catch (Exception) 
            { 
                return -1; 
            } 
         } 
 
    } 
} 

parfrom = MailFrom, parto = MailTo, parcc = Subject, partextmessage = TestMessage, parpathattach = Attachment Path, parpathtemplate = Mail Template Path

SendMail() > invia la mail


This was originally posted here.

Comments

*This post is locked for comments