c#中winform根据邮箱地址和密码一键发送email的实现

企业信息化进程中,根据自己的Email地址一键发送邮件,了解发送原理可以批量发送多人邮箱。原来曾经用VB做过群发工资条,效果比较理想,现在使用c#做开发,原理基本一样。

应用的技术:访问邮件服务器发送邮件、文件操作保存默认信息、winform按钮的逻辑操作

效果图:

核心要点及代码(这里以163为例)

1.发送代码:这是最核心的,注意引用。文本框:发送地址,发送密码,发送服务器,接收地址,发送主题,发送内容。

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 System.Text.RegularExpressions;
using System.IO;

  private void button1_Click(object sender, EventArgs e)
        {
            Regex r = new Regex("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
            if (!(r.IsMatch(tbSend.Text)))  //用正则表达式验证邮箱
            {
                MessageBox.Show("发送邮箱地址格式不正确!");
                return;
            }
           
            //生成SmtpClient实例,用它发送电子邮件
            MailMessage mail = new MailMessage();
            mail.BodyEncoding = System.Text.Encoding.UTF8;
            mail.IsBodyHtml = true;
            mail.From = new MailAddress(tbSend.Text);
            mail.To.Add(new MailAddress(tbAccep.Text));
            mail.Subject = tbAcceptS.Text;
            mail.Body = tbB.Text;
            //生成SmtpClient实例,用它发送电子邮件
            //指定SMTP服务器主机
            SmtpClient client = new SmtpClient(tbSendS.Text);
            client.UseDefaultCredentials = false;
            client.EnableSsl = true;
            client.Credentials = new System.Net.NetworkCredential(tbSend.Text.Substring(0, tbSend.Text.IndexOf('@')), tbSendP.Text);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            try
            {
                client.Send(mail);
                MessageBox.Show("发送成功");
            }
            catch (Exception ex)
            {
                MessageBox.Show("发送失败" + ex.Message.ToString());
            }

        }

2.配置了一些方便操作的功能,比如可以把默认发送地址密码保存在文件中,每次可以提取,还可以随时修改默认地址和密码。对winform的美观性做了强化。这里展示一些代码。有2个文本框是隐藏的,为了输入默认地址。一键可以现实。

这2个是修改默认地址的代码

  private void button3_Click(object sender, EventArgs e)
        {
            if (n%2 == 0)
            {
                textBox1.Visible = true;
                textBox2.Visible = true;
                string fileName = Environment.CurrentDirectory + "\\myText" + ".txt";
                if (System.IO.File.Exists(fileName))
                {
                    var lines = File.ReadAllLines(@fileName);
                    string str0 = lines[0];
                    string str1 = lines[1];
                    textBox1.Text = str0;
                    textBox2.Text = str1;
                
                }
           
                n++;
                button3.Text = "确认修改";

            }
            else
            {
                if (writefile(textBox1.Text, textBox2.Text))
                {
                    textBox1.Visible = false;
                    textBox2.Visible = false;
                    n++;
                    button3.Text = "修改默认";
                }

            }
        }

   private static bool writefile(string name, string password)
        {
            string fileName = Environment.CurrentDirectory + "\\myText" + ".txt";
            if (System.IO.File.Exists(fileName))
            {
               File.Delete(fileName);
            }
      
                StreamWriter sw = File.AppendText(fileName);
               sw.WriteLine(name);
               sw.WriteLine(password);
               sw.Flush();
               sw.Close();
          
            return true;
                 
        }

到此这篇关于c#中winform根据邮箱地址和密码一键发送email的实现的文章就介绍到这了,更多相关c# winform邮箱地址和密码发送email内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#中winform使用相对路径读取文件的方法

    本文实例讲述了C#中winform使用相对路径读取文件的方法.分享给大家供大家参考.具体分析如下: 目录结构如下图所示:   方法一:由于生成的exe文件在bin\debug目录下,可以使用向上查找目录的方式获取要读取的xml文件 复制代码 代码如下: string haarXmlPath = @"../../haarcascade_frontalface_alt_tree.xml"; FileInfo file = new FileInfo(fileName); string  fu

  • C# WinForm中禁止改变窗口大小的方法

    本文介绍在使用C#开发WinForm窗体程序时,如何设置窗体的大小不能被改变. 我们在开发一个窗体(WinForm)程序时,所有的控件都部署在程序界面上了,如果这时来把窗体的大小调整一下,那界面就难看了.怎么设置窗体大小不能被修改呢? 在Form类下面有一个FormBorderStyle的字段,我们可以通过设置它的值来让窗体不能被拉大拉小.FormBorderStyle的值设置为FormBorderStyle.FixedSingle或Fixed3D时,窗体大小是不能被改变的. 当然,还有一种情况

  • C# Winform窗口之间传值的多种方法浅析

    摘要 一般的工程都是多个form组成的,各个窗体之间经常要灵活的传递数据.下面分享一点自己的经验: 窗体传值的方法有很多,下面仅介绍我用过的一些,不知道官方叫这些什么方法,大家也可以找找看其他的. 通过构造器传值 这是最简单的一种方式,例如我从form1中要传一个字符串去form2 首先,在form2的构造器中稍作修改: 复制代码 代码如下: public Form2(String s)         {             InitializeComponent();          

  • C#在winform中实现数据增删改查等功能

    winform中利用ado.net实现对单表的增删改查的详细例子,具体如下: 1.前言: 运行环境:VS2013+SQL2008+Windows10 程序界面预览: 使用的主要控件:dataGridview和menuStrip等.  2.功能具体介绍: 1.首先,我们要先实现基本的数据操作,增删改查这几个操作. (1)先定义一个数据库操作的公共类: using System; using System.Collections.Generic; using System.Linq; using S

  • C#中WinForm程序退出方法技巧总结

    本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退

  • C# WinForm应用程序降低系统内存占用方法总结

    背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是"胃口太大",狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其是 winform 程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的. 以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的内存量比较大,你把程序最小化,会发现该程序占用的内存迅速减小

  • 基于C# winform实现图片上传功能的方法

    本文所述实例实现将一张图片上传到指定的文件夹,然后在窗体上的PictrueBox控件中显示出来. 具体功能代码如下: private void btnUpload_Click(object sender, EventArgs e) { //创建一个对话框对象 OpenFileDialog ofd = new OpenFileDialog(); //为对话框设置标题 ofd.Title = "请选择上传的图片"; //设置筛选的图片格式 ofd.Filter = "图片格式|*

  • c# winform取消右上角关闭按钮的实现方法

    一种方法是可以在窗体的属性面板将窗体的 ControlBox属性设置为false,或者在窗体的构造函数中这样写: 复制代码 代码如下: public Form1() { InitializeComponent(); this.ControlBox = false;   // 设置不出现关闭按钮 } 不过这样做的话,会连同最小化和最大化按钮都给弄掉了,所以,如果你想只想让关闭按钮不起作用,然后保留最小化.最大化的话,就重写窗体的CreateParams方法: 复制代码 代码如下: //禁用窗体的关

  • C#中winform实现自动触发鼠标、键盘事件的方法

    程序触发鼠标.键盘事件是C#程序设计中比较常见的功能,本文实例展示了C#中winform实现自动触发鼠标.键盘事件的方法,有不错的实用价值.具体如下: 要想在C#程序中触发鼠标.键盘事件就必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// </summary> /// <param name="flags">事件类型</param> /

  • c#中winform根据邮箱地址和密码一键发送email的实现

    企业信息化进程中,根据自己的Email地址一键发送邮件,了解发送原理可以批量发送多人邮箱.原来曾经用VB做过群发工资条,效果比较理想,现在使用c#做开发,原理基本一样. 应用的技术:访问邮件服务器发送邮件.文件操作保存默认信息.winform按钮的逻辑操作 效果图: 核心要点及代码(这里以163为例) 1.发送代码:这是最核心的,注意引用.文本框:发送地址,发送密码,发送服务器,接收地址,发送主题,发送内容. using System; using System.Collections.Gene

  • 邮箱地址正则表达式验证代码合集脚本之家特别版

    邮箱地址验证正则表达式 dedecms中的邮箱地址验证 复制代码 代码如下: <?php $email="test@jb51.com"; //邮箱格式检查 function CheckEmail($email) { return eregi("^[0-9a-z][a-z0-9\._-]{1,}@[a-z0-9-]{1,}[a-z0-9]\.[a-z\.]{1,}[a-z]$", $email); } echo CheckEmail($email); phpcm

  • php结合正则批量抓取网页中邮箱地址

    php如何抓取网页中邮箱地址,下面我就给大家分享一个用php抓取网页中电子邮箱的实例. <?php $url='http://www.jb51.net'; //要采集的网址 $content=file_get_contents($url); //echo $content; function getEmail($str) { //$pattern = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3

  • jquery中邮箱地址 URL网站地址正则验证实例代码

    email地址验证 复制代码 代码如下: function checkEmail(){    var email=$.trim($("#report_email").val());    if(email == ""){        $("#report_email").next('p').html("*请输入邮箱地址!");        return false;    }    var re = /^([a-zA-Z0

  • java web激活邮箱并找回密码

    几乎每个网站或论坛之类的用户注册后都需要通过发送邮件到邮箱激活用户,如何激活邮箱呐? 设计激活步骤: 1.发送激活操作链接地址至用户邮箱. 2.用户至邮箱查收邮件. 3.用户点击链接,跳转至成功页面(修改激活状态),激活成功. 实现: /** * 发送邮件 * * @param request * @return */ @RequestMapping(value = "/sendEmail.jhtml") @ResponseBody public String sendEmail(Ht

  • 基于PHP CURL获取邮箱地址的详解

    CURL可谓居家旅行必备之杀人良药,为何如此形容?就是因为他好用方便能实现页面抓取模拟登录采集等一系列功能.记得第一次接触CURL的时候是要实现完成从邮箱用户列表的抓取.当时为了赶进度没有细细研究只是网上找了一些资料实现了功能.现在把当初的代码整理一下功能依旧能用 复制代码 代码如下: <?php  error_reporting ( 0 );  set_time_limit ( 0 );  header ( "Content-Type: text/html; charset=GB2312

  • Asp.NEt邮箱验证修改密码通过邮箱找回密码功能

    使用邮箱验证修改密码,在这里我是使用163免费邮进行测试 前台代码 <input type="text" name="Mail" id="Mail"/> <span>*请输入邮箱</span><br/> <asp:Button ID="zhuce" runat="server" Text="tijiao" OnClick="

  • 在 Angular2 中实现自定义校验指令(确认密码)的方法

    我们会在本文中探索 Angular 2 内建的自定义验证. # 介绍 Angular 2 原生就支持一些有用的验证器: required: 验证字段必须存在 minlength: 验证字段值的最小长度有效 maxlength: 验证字段值的最大长度有效 pattern: 验证输入的值是否匹配给定的模板,比如 email 我们会基于下面的接口创建一个表单来获取用户信息. // user.interface.ts export interface User { username: string; /

  • 如何验证会员系统中用户的邮箱是否真实存在

    在开发网站时,我们需要对用户注册的邮箱进行核对与验证,用户填写的邮箱是否有效邮箱. 好吧,我们先从数据库入手,修改用户表让用户有填写email的字段,添加了2个字段: ALTER TABLE [dbo].[Users] ADD [Email] VARCHAR(100) NULL, [IsVerify] BIT NOT NULL DEFAULT(0) SELECT * FROM [dbo].[Users] 由于你需要做2个功能,一个是要求用户验证邮箱有效性,也有可以以邮箱来让用户修改用户密码.因此

  • jQuery实现Email邮箱地址自动补全功能代码

    本文实例讲述了jQuery实现Email邮箱地址自动补全功能代码.分享给大家供大家参考,具体如下: jQuery Email邮箱地址自动补全代码,输入Email时,会自动加入@符号,在输入框中输入"qq"."Sina"."163"等等可以看到效果:鼠标经过提示Email时,高亮该条Email,鼠标点击Email时,文本框内容替换成该条Email,并删除提示层. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js

随机推荐