• 十种发送邮件的方式


    其实大同小异,记录下

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Net.Mail;
    using System.Net.Mime;
    using System.IO;
    using System.ComponentModel;
    namespace Mail
    {
        class Program
        {
            static void Main(string[] args)
            {
    
            }
            static void PlainText()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
            static void HtmlEmail()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is a sample body with html in it. <b>This is bold</b> <font color=#336699>This is blue</font>";
                mail.IsBodyHtml = true;
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
    
            static void MultiPartMime()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
    
                //first we create the Plain Text part
                AlternateView plainView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");
                //then we create the Html part
                AlternateView htmlView = AlternateView.CreateAlternateViewFromString("<b>this is bold text, and viewable by those mail clients that support html</b>", null, "text/html");
                mail.AlternateViews.Add(plainView);
                mail.AlternateViews.Add(htmlView);
    
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1"); //specify the mail server address
                smtp.Send(mail);
            }
    
            static void FriendlyFromName()
            {            
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                //to specify a friendly 'from' name, we use a different ctor
                mail.From = new MailAddress("me@mycompany.com", "Steve James" );
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
    
            }
    
            static void FriendlyToName()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                //to specify a friendly 'from' name, we use a different ctor
                mail.From = new MailAddress("me@mycompany.com", "Steve James");
    
                //since the To,Cc, and Bcc accept addresses, we can use the same technique as the From address
                mail.To.Add( new MailAddress( "you@yourcompany.com", "Beth Jones") );
                mail.CC.Add(new MailAddress("donna@yourcompany.com", "Donna Summers"));
                mail.Bcc.Add(new MailAddress("bob@yourcompany.com", "Bob Smith"));
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
    
            static void MultipleRecipients()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                //to specify a friendly 'from' name, we use a different ctor
                mail.From = new MailAddress("me@mycompany.com", "Steve James");
    
                //since the To,Cc, and Bcc accept addresses, we can use the same technique as the From address
                //since the To, Cc, and Bcc properties are collections, to add multiple addreses, we simply call .Add(...) multple times
                mail.To.Add("you@yourcompany.com");
                mail.To.Add("you2@yourcompany.com");
                mail.CC.Add("cc1@yourcompany.com");
                mail.CC.Add("cc2@yourcompany.com");
                mail.Bcc.Add("blindcc1@yourcompany.com");
                mail.Bcc.Add("blindcc2@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
    
            static void FriendlyNonAsciiName()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                //to specify a friendly non ascii name, we use a different ctor. 
                //A ctor that accepts an encoding that matches the text of the name
                mail.From = new MailAddress("me@mycompany.com", "Steve 豣irk", Encoding.GetEncoding( "iso-8859-1"));
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
    
            }
    
            static void SetPriority()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //specify the priority of the mail message
                mail.Priority = MailPriority.High;
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
    
            static void SetTheReplyToHeader()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //specify the priority of the mail message
                mail.ReplyTo = new MailAddress("SomeOtherAddress@mycompany.com");
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
    
            static void CustomHeaders()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //to add custom headers, we use the Headers.Add(...) method to add headers to the 
                //.Headers collection
                mail.Headers.Add("X-Company", "My Company");
                mail.Headers.Add("X-Location", "Hong Kong");
    
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
            static void ReadReceipts()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //To request a read receipt, we need add a custom header named 'Disposition-Notification-To'
                //in this example, read receipts will go back to 'someaddress@mydomain.com'
                //it's important to note that read receipts will only be sent by those mail clients that 
                //a) support them
                //and
                //b)have them enabled.
                mail.Headers.Add("Disposition-Notification-To", "<someaddress@mydomain.com>");
    
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
    
            static void AttachmentFromFile()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this content is in the body";
    
                //add an attachment from the filesystem
                mail.Attachments.Add(new Attachment("c:\\temp\\example.txt"));
    
                //to add additional attachments, simply call .Add(...) again
                mail.Attachments.Add(new Attachment("c:\\temp\\example2.txt"));
                mail.Attachments.Add(new Attachment("c:\\temp\\example3.txt"));
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
    
            }
    
            static void AttachmentFromStream()
            {
    
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this content is in the body";
    
                //Get some binary data
                byte[] data = GetData();
                
                //save the data to a memory stream
                MemoryStream ms = new MemoryStream(data);
    
                //create the attachment from a stream. Be sure to name the data with a file and 
                //media type that is respective of the data
                mail.Attachments.Add( new Attachment( ms, "example.txt", "text/plain" ));
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
            }
            static byte[] GetData()
            {
                //this method just returns some binary data.
                //it could come from anywhere, such as Sql Server
                string s = "this is some text";
                byte[] data = Encoding.ASCII.GetBytes(s);
                return data;
            }
    
            static void LoadFromConfig(){
                //the from address, along with the server properties will be set in the app.config,
                //thus we don't need to specify them in code
    
                //create the mail message
                MailMessage mail = new MailMessage();
    
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient();
                smtp.Send(mail);
    
            }
    
            static void Authenticate()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
    
                //to authenticate we set the username and password properites on the SmtpClient
                smtp.Credentials = new NetworkCredential("username", "secret"); 
                smtp.Send(mail);
    
            }
    
            static void ChangePort()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
    
                //to change the port (default is 25), we set the port property
                smtp.Port = 587;
                smtp.Send(mail);
            }
    
            static void EmbedImages()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
    
                //first we create the Plain Text part
                AlternateView plainView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");
    
                //then we create the Html part
                //to embed images, we need to use the prefix 'cid' in the img src value
                //the cid value will map to the Content-Id of a Linked resource.
                //thus <img src='cid:companylogo'> will map to a LinkedResource with a ContentId of 'companylogo'
                AlternateView htmlView = AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:companylogo>", null, "text/html");
    
                //create the LinkedResource (embedded image)
                LinkedResource logo = new LinkedResource( "c:\\temp\\logo.gif" );
                logo.ContentId = "companylogo";
                //add the LinkedResource to the appropriate view
                htmlView.LinkedResources.Add(logo);
                
                //add the views
                mail.AlternateViews.Add(plainView);
                mail.AlternateViews.Add(htmlView);
    
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1"); //specify the mail server address
                smtp.Send(mail);
            }
    
            static void SSL()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //Port 587 is another SMTP port
                SmtpClient smtp = new SmtpClient("127.0.01", 587);
                smtp.EnableSsl = true;
                smtp.Send(mail);
            }
    
            static void SendAsync()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1"); //specify the mail server address
                //the userstate can be any object. The object can be accessed in the callback method
                //in this example, we will just use the MailMessage object.
                object userState = mail; 
    
                //wire up the event for when the Async send is completed
                smtp.SendCompleted += new SendCompletedEventHandler(SmtpClient_OnCompleted);
    
                smtp.SendAsync( mail, userState );
            }
            public static void SmtpClient_OnCompleted(object sender, AsyncCompletedEventArgs e)
            {
                //Get the Original MailMessage object
                MailMessage mail= (MailMessage)e.UserState;
    
               //write out the subject
                string subject = mail.Subject;
    
                if (e.Cancelled)
                {
                    Console.WriteLine("Send canceled for mail with subject [{0}].", subject);
                }
                if (e.Error != null)
                {
                    Console.WriteLine("Error {1} occurred when sending mail [{0}] ", subject, e.Error.ToString());
                }
                else
                {
                    Console.WriteLine("Message [{0}] sent.", subject );
                }
            }
    
            public static void PickupDirectory()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //if we are using the IIS SMTP Service, we can write the message
                //directly to the PickupDirectory, and bypass the Network layer
                SmtpClient smtp = new SmtpClient();
                smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
                smtp.Send(mail);
            }
    
            public static void EmailWebPage()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
    
                //screen scrape the html
                string html = ScreenScrapeHtml("http://localhost/example.htm");
                mail.Body = html;
                mail.IsBodyHtml = true;
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
    
            }
            public static string ScreenScrapeHtml(string url)
            {
                WebRequest objRequest = System.Net.HttpWebRequest.Create(url);
                StreamReader sr = new StreamReader(objRequest.GetResponse().GetResponseStream());
                string result = sr.ReadToEnd();
                sr.Close();
                return result;
            }
    
            public static void NonAsciiMail()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("you@yourcompany.com");
    
                //set the content
                mail.Subject = "This is an email";
    
                //to send non-ascii content, we need to set the encoding that matches the 
                //string characterset.
                //In this example we use the ISO-8859-1 characterset
                mail.Body = "this text has some ISO-8859-1 characters: 庖涨";
                mail.BodyEncoding = Encoding.GetEncoding("iso-8859-1");
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                smtp.Send(mail);
    
            }
    
            public static void InnerExceptions()
            {
                //create the mail message
                MailMessage mail = new MailMessage();
    
                //set the addresses
                mail.From = new MailAddress("me@mycompany.com");
                mail.To.Add("him@hiscompany.com");
    
                //set the content
                mail.Subject = "This is an email";
                mail.Body = "this is the body content of the email.";
    
                //send the message
                SmtpClient smtp = new SmtpClient("127.0.0.1");
                try
                {
                    smtp.Send(mail);
                }
                catch (Exception ex)
                {
                    Exception ex2 = ex;
                    string errorMessage = string.Empty;
                    while (ex2 != null)
                    {
                        errorMessage += ex2.ToString();
                        ex2 = ex2.InnerException;
                    }
    
                    Console.WriteLine(errorMessage);
                }
            }
    
    
    
        }
    }
    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    编译安装php
    CentOS yum 安装LAMP PHP5.4版本
    CentOS下php安装mcrypt扩展
    CentOS安装crontab及使用方法(转)
    解决svn "cannot set LC_CTYPE locale"的问题
    CentOS下通过yum安装svn及配置
    linux svn启动和关闭
    vagrant启动报错The following SSH command responded with a no
    并行进程问题
    利用集群因子优化
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1607020.html
Copyright © 2020-2023  润新知