using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.Mail;
using System.Net.Sockets;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace SMTP测试
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        bool b = false;

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            ; i < ; i++)
            {
                Thread th = new Thread(new ThreadStart(delegate
                {
                    Console.WriteLine(CheckSmtp(, "user", "pswd"));
                }));
                th.IsBackground = true;
                th.Start();
            }

        }
        private bool CheckSmtp(string smtpServer, int port, string username, string password)
        {
            TcpClient tcpClient = new TcpClient(smtpServer, port);
            NetworkStream stream = tcpClient.GetStream();

            ")) return false;

            SendCommand(stream, "HELO 211.152.50.xxx\r\n");
            ")) return false;

            SendCommand(stream, "AUTH LOGIN\r\n");
            ")) return false;

            SendCommand(stream, Base64Encode(username) + "\r\n");
            ")) return false;

            SendCommand(stream, Base64Encode(password) + "\r\n");
            ")) return false;

            return true;

        }

        private bool WaiteFor(NetworkStream stream, string strCode)
        {
            int StreamSize;
            ];
            StreamSize = stream.Read(ReadBuffer, , ReadBuffer.Length);
            , StreamSize);

            //Console.WriteLine(Returnvalue);

            , ).Equals(strCode);
        }
        private void SendCommand(NetworkStream stream, string strCmd)
        {
            byte[] WriteBuffer;

            WriteBuffer = Encoding.Default.GetBytes(strCmd);

            stream.Write(WriteBuffer, , WriteBuffer.Length);

        }

        private string Base64Encode(string str)
        {
            byte[] barray;
            barray = Encoding.Default.GetBytes(str);
            return Convert.ToBase64String(barray);
        }

    }
}

c#smtp多线程的更多相关文章

  1. Pyqt Smtplib实现Qthread多线程发送邮件

    一. smtplib 的介绍 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])   SMTP类构造函数,表示与SMTP服务器之间的连接 ...

  2. java实现smtp邮件发送

    一.准备工作 首先你需要已一个发送邮箱,一般的邮箱都有SMTP.POP3服务,比如QQ邮箱,登陆QQ邮箱开启SMTP服务,开启是服务器会提示你设置独立密码,这个密码是跟邮箱正常登陆的密码不同的,这个是 ...

  3. Java实现多线程邮件发送

    利用java多线程技术配合线程池实现多任务邮件发送. 1.基本邮件发送MailSender package hk.buttonwood.ops.email; import java.io.File; ...

  4. C++程序员面试题目总结(涉及C++基础、多线程多进程、网络编程、数据结构与算法)

     说明:C++程序员面试题目总结(涉及C++基础知识.多线程多进程.TCP/IP网络编程.Linux操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...

  5. 一个轻巧高效的多线程c++stream风格异步日志(一)

    一个轻巧高效的多线程c++stream风格异步日志 一个轻巧高效的多线程c++stream风格异步日志 前言 功能需求 性能需求 Logger实现 LogStream类 Logger类 LogStre ...

  6. 多线程和Socket——在线聊天室

    多线程开发和Socket技术 一.进程和线程 进程:每个应用程序对应一个进程: 线程:一个进程至少包含一个线程,线程要和CPU进行交互. 多线程并发(可以理解为):"同一时间"执行 ...

  7. 12306GT多线程、分流免费抢票工具使用心德

    大事记背景 我相信很多远游他乡的朋友每逢佳节都会遇到一个难题,就是购票难,这个难题有多难呢?经常在12306官网购票的小伙伴应该知道每个地方的放票时间是不一样的,但是逢年过节的那几天即使你在放票几分钟 ...

  8. windowService中使用多线程

    windowService中使用多线程 代码 using System;using System.Collections.Generic;using System.Linq;using System. ...

  9. Linux多线程服务器端编程

    目录 Linux多线程服务器端编程 线程安全的对象生命期管理 对象的销毁线程比较难 线程同步精要 借shared_ptr实现写时拷贝(copy-on-write) 多线程服务器的适用场合与常用编程模型 ...

随机推荐

  1. scikit-learn预处理实例之一:使用FunctionTransformer选择列

    本例展示怎样在一个管道中使用FunctionTransformer.如果你知道你的数据集的第一主成分与分类任务无关,你可以使用FunctionTransformer选取除PCA转化的数据的第一列之外的 ...

  2. 初学DDD-领域驱动设计

    这几天刚开始学习DDD,看了几篇大神的文章,现在只是知道了几个名词,还没有详细的学习.结合自己的工作经历,说说自己的看法,请各位大神多多指点. 最开始用的比较多的是以数据库表建立模型驱动开发.后来发现 ...

  3. C#开发微信门户及应用(13)-使用地理位置扩展相关应用

    本文继续上一篇<C#开发微信门户及应用(12)-使用语音处理>,继续介绍微信的相关应用.我们知道,地理位置信息可以用来做很多相关的应用,除了我们可以知道用户所在的位置,还可以关联出一些地理 ...

  4. hibernate.cfg.xml

    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN&q ...

  5. Mac 热键大全

    屏幕捕捉快捷键动作............................保存到............-快捷键 全屏捕捉........................桌面(.PDF文件)..... ...

  6. [连载]《C#通讯(串口和网络)框架的设计与实现》- 10.宿主程序详细设计

    目       录 第十章           宿主程序详细设计... 2 10.1        配置文件设计... 3 10.2        加载设备驱动... 4 10.3        加载 ...

  7. K60——寄存器

    (1)PTx_BASE_PTR为GPIO寄存器结构体基址指针(PTR即point to register,x=A/B/C/D/E) /* GPIO - Peripheral instance base ...

  8. js 压缩工具总结

    随便百度一个 “js 压缩”,然后就会有各种代码压缩工具可供选择, 向来我就爱那种绚丽新颖的玩意,比如这家显示压缩比呀,或者那家可以查错呀什么的, 今天还为国民浏览器拥有鼠标手势(按住右键画个图形就有 ...

  9. Allocators与Criterion的相同点及区别

    C++98: 1.相同点: Allocators having the same type were assumed to be equal so that memory allocated by o ...

  10. .Net开源Excel、Word操作组件-NPOI、EPPlus、DocX

    一.NPOI 简介: NPOI is the .NET version of POI Java project. With NPOI, you can read/write Office 2003/2 ...