C# Winform 入门(2)之发送邮件

主要使用控件: label button textBox

1.添加引用

cs 复制代码
using System.Net.Mail;

2.实例化邮件(封装)

  • From:邮件的发送地址
  • To.Add:邮件的接收地址
  • Subject:邮件的主题
  • Body:消息的主文(内容)
cs 复制代码
 void Send_mail()
 {
     //实例化一个邮件
     MailMessage mailMessage = new MailMessage();
     mailMessage.From = new MailAddress(Address_sender.Text);
     mailMessage.To.Add(Address_received.Text);
     mailMessage.Subject = txt_subject.Text;
     mailMessage.Body = txt_content.Text;

     //实例化邮件的传输协议
     SmtpClient smtpClient = new SmtpClient();
     // 传输协议里面的账号密码
     smtpClient.Credentials = new System.Net.NetworkCredential(Address_sender.Text, txt_pwd.Text);
     smtpClient.Host = "smtp.163.com";
     smtpClient.Send(mailMessage);
 }

3.清除按钮的实现

cs 复制代码
 private void Cleartxt_Click(object sender, EventArgs e)
 {
     if(MessageBox.Show("Do you want to erase all the information ?","Information hint",MessageBoxButtons.YesNo)==DialogResult.Yes)
     {
         Address_sender.Clear();
         Address_received.Clear();
         txt_subject.Clear();
         txt_content.Clear();
         txt_pwd.Clear();
     }
 }

4.发送邮件按钮功能

cs 复制代码
   private void Send_email_Click(object sender, EventArgs e)
   {
       try
       {
           Send_mail();
           MessageBox.Show("发送成功");
       }catch(Exception ex)
       {
           throw ex;
       }
   }

5.回车按钮实现

cs 复制代码
 private void Address_sender_KeyDown(object sender, KeyEventArgs e)
 {
     if(this.Address_sender.Text.Trim().Length!=0 && e.KeyValue==13)
     {
         this.Address_received.Focus();
         this.Address_received.SelectAll();
     }
 }

 private void Address_received_KeyDown(object sender, KeyEventArgs e)
 {
     if(this.Address_received.Text.Trim().Length!=0 && e.KeyValue==13)
     {
         this.txt_subject.Focus();
         this.txt_subject.SelectAll();
     }
 }

 private void txt_subject_KeyDown(object sender, KeyEventArgs e)
 {
     if(this.txt_subject.Text.Trim().Length!= 0 && e.KeyValue==13)
     {
         this.txt_content.Focus();
         this.txt_content.SelectAll();
     }
 }

 private void txt_content_KeyDown(object sender, KeyEventArgs e)
 {
     if(this.txt_content.Text.Trim().Length!=0 && e.KeyValue ==13)
     {
         this.txt_pwd.Focus();
         this.txt_pwd.SelectAll();
     }
 }

 private void txt_pwd_KeyDown(object sender, KeyEventArgs e)
 {
     if(this.txt_pwd.Text.Trim().Length!=0 && e.KeyValue ==13)
     {
         this.Send_email_Click(null, null);
     }
 }

cs 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Mail;
using Sunisoft.IrisSkin;


namespace _02.Send_mail
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            SkinEngine sk=new SkinEngine();
            sk.SkinFile = "C:\\Users\\86195\\Desktop\\C#-lesson\\02.Send-mail\\bin\\Debug\\Skins\\DiamondBlue.ssk";
        }

        private void Send_email_Click(object sender, EventArgs e)
        {
            try
            {
                Send_mail();
                MessageBox.Show("发送成功");
            }catch(Exception ex)
            {
                throw ex;
            }
        }
        void Send_mail()
        {
            //实例化一个邮件
            MailMessage mailMessage = new MailMessage();
            mailMessage.From = new MailAddress(Address_sender.Text);
            mailMessage.To.Add(Address_received.Text);
            mailMessage.Subject = txt_subject.Text;
            mailMessage.Body = txt_content.Text;

            //实例化邮件的传输协议
            SmtpClient smtpClient = new SmtpClient();
            // 传输协议里面的账号密码
            smtpClient.Credentials = new System.Net.NetworkCredential(Address_sender.Text, txt_pwd.Text);
            smtpClient.Host = "smtp.163.com";
            smtpClient.Send(mailMessage);
        }

        private void Cleartxt_Click(object sender, EventArgs e)
        {
            if(MessageBox.Show("Do you want to erase all the information ?","Information hint",MessageBoxButtons.YesNo)==DialogResult.Yes)
            {
                Address_sender.Clear();
                Address_received.Clear();
                txt_subject.Clear();
                txt_content.Clear();
                txt_pwd.Clear();
            }
        }

        private void Address_sender_KeyDown(object sender, KeyEventArgs e)
        {
            if(this.Address_sender.Text.Trim().Length!=0 && e.KeyValue==13)
            {
                this.Address_received.Focus();
                this.Address_received.SelectAll();
            }
        }

        private void Address_received_KeyDown(object sender, KeyEventArgs e)
        {
            if(this.Address_received.Text.Trim().Length!=0 && e.KeyValue==13)
            {
                this.txt_subject.Focus();
                this.txt_subject.SelectAll();
            }
        }

        private void txt_subject_KeyDown(object sender, KeyEventArgs e)
        {
            if(this.txt_subject.Text.Trim().Length!= 0 && e.KeyValue==13)
            {
                this.txt_content.Focus();
                this.txt_content.SelectAll();
            }
        }

        private void txt_content_KeyDown(object sender, KeyEventArgs e)
        {
            if(this.txt_content.Text.Trim().Length!=0 && e.KeyValue ==13)
            {
                this.txt_pwd.Focus();
                this.txt_pwd.SelectAll();
            }
        }

        private void txt_pwd_KeyDown(object sender, KeyEventArgs e)
        {
            if(this.txt_pwd.Text.Trim().Length!=0 && e.KeyValue ==13)
            {
                this.Send_email_Click(null, null);
            }
        }
    }
}

附:

网易邮箱 => 打开微软浏览器 => 网易邮箱网页版 =>

下滑

相关推荐
hqyjzsb1 分钟前
Python 技术人转型 AI:CAIE Level I、Level II 对比怎么选
开发语言·人工智能·python·金融·数据挖掘·数据分析·aigc
承渊政道44 分钟前
【Python编程—从入门到实践】(Python字典:从基础语义到现代工程实践)
开发语言·python·pycharm·字典·嵌套
luj_17681 小时前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法
名字还没想好☜1 小时前
Python 字符编码实战:encode/decode、UnicodeDecodeError 与 open 的 encoding 坑
开发语言·后端·python·编程语言
萧瑟余晖1 小时前
持久层选型与框架对比详解
开发语言·架构
CodeStats1 小时前
【Java 类加载器】Java 类加载器完整体系深度拆解(上):从 JVM 启动到双亲委派模型
java·开发语言·jvm·classloader·双亲委派
软件黑马王子2 小时前
24.Editor 资源加载:主要作用和基本原理
开发语言·前端框架·c#
luj_17682 小时前
中锋卡位与开放线博弈
c语言·开发语言·网络·经验分享·算法
慧都小妮子2 小时前
用 Python 批量把 PDF 参考文献排成 MLA 格式:Spire.Doc for Python 实战
python·pdf·c#·spire.doc·mla格式·参考文献排版·pdf批量处理
未来之窗软件服务2 小时前
计算机二级[英文]-C 逻辑运算和fopen—东方仙盟
c语言·开发语言·仙盟创梦ide·东方仙盟