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);
            }
        }
    }
}

附:

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

下滑

相关推荐
264玫瑰资源库6 分钟前
问道数码兽 怀旧剧情回合手游源码搭建教程(反查重优化版)
java·开发语言·前端·游戏
普if加的帕31 分钟前
java Springboot使用扣子Coze实现实时音频对话智能客服
java·开发语言·人工智能·spring boot·实时音视频·智能客服
安冬的码畜日常1 小时前
【AI 加持下的 Python 编程实战 2_10】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(中)
开发语言·前端·人工智能·ai·扫雷游戏·ai辅助编程·辅助编程
朝阳5812 小时前
Rust项目GPG签名配置指南
开发语言·后端·rust
朝阳5812 小时前
Rust实现高性能目录扫描工具ll的技术解析
开发语言·后端·rust
程高兴2 小时前
基于Matlab的车牌识别系统
开发语言·matlab
牛马baby2 小时前
Java高频面试之并发编程-07
java·开发语言·面试
CodeWithMe2 小时前
【C++】STL之deque
开发语言·c++
炯哈哈3 小时前
【上位机——MFC】运行时类信息机制
开发语言·c++·mfc·上位机
T.Ree.5 小时前
【数据结构】_树和二叉树
c语言·开发语言·数据结构