C#实现邮件发送功能


首先我们要知道我们使用的邮件的主机、端口等信息。本次博客就以QQ邮箱为例子.

第一、你打开邮箱,找到设置,选择账户;在下面找到 “ POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

第二、开启POP3/SMTP服务

 

 第三步、服务开启之后,就是代码了,具体代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Windows.Forms;

namespace Email
{
    class Programs
    {
        static void Main(string[] args)
        {
            btnEmailCode_Click();
        }
        //获取邮箱验证码
        public static void btnEmailCode_Click()
        {
            string mailFrom = "************"; //发件人邮箱地址                                                                      
            MailAddress MessageFrom = new MailAddress(mailFrom); //发件人邮箱地址
            string mailTo = "************";//收件人地址
            string activeCode = Guid.NewGuid().ToString().Substring(0, 6);//生成激活码      
            string MessageSubject = "******************"; //主题
            string MessageBody = "********************";//邮件内容
            if (Send(MessageFrom, mailTo, MessageSubject, MessageBody))
            {
                Console.WriteLine("发送邮件成功");
            }
            else
            {
                Console.WriteLine("发送邮件失败");
            }

        }
        public static bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody)
        {
            MailMessage message = new MailMessage();
            message.From = MessageFrom;
            message.To.Add(MessageTo); //收件人邮箱地址可以是多个以实现群发
            message.Subject = MessageSubject;
            message.Body = MessageBody;
            message.IsBodyHtml = true; //是否为html格式
            message.Priority = MailPriority.High; //发送邮件的优先等级
            SmtpClient sc = new SmtpClient();
            sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP
            sc.Port = 25; //指定发送邮件端口
            /*
             * email :发件人的邮箱账号
             * butpgifsvvqebcbf:这个是你发送邮件的一个令牌,你需要在邮箱中申请之后会给你一个这样的令牌(字符串)
             * **/
            sc.Credentials = new System.Net.NetworkCredential("email", "butpgifsvvqebcbf"); //指定登录服务器的用户名和密码(发件人的邮箱登陆密码)
            try
            {
                sc.Send(message); // 发送邮件
                return true;
            }
            catch (ArgumentNullException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (ArgumentException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            //已释放此对象。
            catch (ObjectDisposedException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (InvalidOperationException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (SmtpFailedRecipientException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (SmtpException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (Exception ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
        }


        private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            if (e.Cancelled)  //邮件发送被取消
            {
                MessageBox.Show("发送被取消!");
            }
            if (e.Error != null)   //邮件发送失败
            {
                MessageBox.Show("发送失败!");
            }
            else   //发送成功
            {
                MessageBox.Show("发送成功!");
            }
        }
    }
}

 

注意:

 sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP sc.Port = 25; //指定发送邮件端口

这样你就可以发送成邮件了

 

 

 

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM