Introduction
It is often necessary to be involved in organizing community activities that involve communicating with different people, and the same email is an indispensable way.
The general bulk of the mail is not very friendly, if it is one-on, the person receiving the mail will be more attention, but also his name in the inside.
So take some time to write a tool, using C # to make a mail-sending tool is very simple.
Full code
Class Program {private static string baseDir = ""; private static string email = ""; static void Main (string[] args) {Console.WriteLine ("---begins execution---"); BaseDir = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; email = configurationmanager.appsettings["email"]; var date = DateTime.Now.ToString ("Yyyy-mm-dd"); FileStream fs = new FileStream ($ "{basedir}\\[log]{date}.txt", filemode.create); StreamWriter SW = new StreamWriter (FS); Sw. WriteLine ("===== send log ====="); list<contact> contacts = Getcontacts (); var smtpclient = getsmtpclient (); foreach (var contact in Contacts) {SendMail (smtpclient, contact, SW); } SW. WriteLine ("===== execution completed ====="); Sw. Flush (); Sw. Close (); Fs. Close (); Console.WriteLine ("---execution completed---"); Console.ReadLine (); } private static SmtpClient Getsmtpclient () {String server = configurationmanager.appsettings["s Erver "]; String port = configurationmanager.appsettings["Port"]; string password = configurationmanager.appsettings["password"]; SmtpClient smtpclient = new SmtpClient (); Smtpclient.host = server; Smtpclient.port = Convert.ToInt32 (Port); Smtpclient.deliverymethod = Smtpdeliverymethod.network; Smtpclient.enablessl = true; Smtpclient.credentials = new NetworkCredential (email, password); return smtpclient; } private static void SendMail (SmtpClient smtpclient, contact contact, StreamWriter sw) {try {var mailmessage = getmailmessage (contact); Smtpclient.send (MailMessage); Console.WriteLine ($ "---sent successfully, email = {Contact. Email}---"); Sw. WriteLine ($ "---send success, email = {Contact. Email}---"); } catch (Exception ex) {Console.WriteLine ($ = = = = Send Failed, email = {Contact. Email} = = = "); Sw. WriteLine ($ "= = = Send Failed, email = {Contact. Email} = = = "); }} private static MailMessage getmailmessage (Contact contact) {String subject = Configur ationmanager.appsettings["Subject"]; string introduce = configurationmanager.appsettings["introduce"]; String link = configurationmanager.appsettings["link"]; String content = "<p style=\" font-size:16px\ ">dear" + contact. Name + ", </p>" + "<p style=\" font-size:16px\ ">" + Introduce + "</p> "+" <p style=\ "font-size:16px\" > Registration Link: "
+ "<a target=\" _blank\ "href=\" "+ link +" \ ">" + link + "</a></p>" + getcontent (); MailMessage mailmessage = new MailMessage (email, contact. Email); Mailmessage.subject = Subject; Mailmessage.body = content; mailmessage.bodyencoding = Encoding.UTF8; Mailmessage.isbodyhtml = true; mailmessage.priority = Mailpriority.normal; return mailmessage; } private static string GetContent () {var dir = baseDir + "\\content.txt"; StreamReader sr = new StreamReader (dir, Encoding.UTF8); String content = Sr. ReadToEnd (); Sr. Close (); return content; } private static List<contact> getcontacts () {list<contact> contacts = new List<c Ontact> (); var dir = baseDir + "\\contacts.txt"; StreamReader sr = new StreamReader (Dir, Encoding.UTF8); String line; while (line = Sr. ReadLine ()) = null) {line = line. Replace (",", ","); var contact = line. Split (new[] {","}, Stringsplitoptions.removeemptyentries); if (contact. Length = = 2 &&!string. IsNullOrEmpty (contact[0]) &&!string. IsNullOrEmpty (Contact[1])) {Contacts. ADD (New Contact () {Name = contact[0], Email = contact[1]}); }} Sr. Close (); return contacts; public class Contact {public string Name {get; set;} public string Email {get; set;} } }
App.
<appSettings> <add key= "Server" value= "smtp.live.com"/> <add key= "port" value= "/>" <add key= "Email" value= "* * * @hotmail. com"/> <add key= "password" value= ""/> <add key= " Subject "value=" agile personal Beijing June 2016 activities: Play turn career Rhapsody "/> <add key=" introduce "value=" Welcome to participate in the agile individual Beijing June 2016 activities: Play a career rhapsody activities! > <add key= "link" value= "HTTP://WWW.HDB.COM/PARTY/QZ1EU?H_SHARE_UID=F0BV"/> </appsettings >
Attention
1) Read configuration information for App. Config
2) Read the contact file under the program root: Contacts.txt
--------------------------------
Test 1,*** @gmail. com
Test 2,*** @qq. com
Test 3,***@163.com
--------------------------------
3) Read the content file in the root directory of the program, including HTML code: Content.txt
Send results
1) Console output log
2) Receive email content,Dear * *
Code download
Bulk Mail Tool (C # Edition)