代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
WinForm发送邮件
作者:
Dezai.CN
/ 发布于
2013/2/20
/
590
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; namespace SendMail { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 20; i++) { string [] recs = rec.Text.Split(';'); bool isyes = SendMail(server.Text, 25, this.txt_account.Text, recs, this.subject.Text, this.content.Text, true, this.txt_pwd.Text); } //if (isyes) //{ // MessageBox.Show("邮件发送成功"); //} } NetworkStream ns; /// <summary> /// /// </summary> /// <param name="smtpServer">smtp服务器</param> /// <param name="point">发送端口</param> /// <param name="_from">发件人</param> /// <param name="_tos">收件人</param> /// <param name="_subject">主题</param> /// <param name="_content">内容</param> /// <param name="isESMTP">是否需要身份验证</param> /// <param name="userPWD">发件人密码</param> /// <returns></returns> public bool SendMail(string smtpServer, int point, string _from, string[] _tos, string _subject, string _content, bool isESMTP, string userPWD) { try { TcpClient smtpClient = new TcpClient(); IPAddress ip = Dns.GetHostAddresses(smtpServer)[0]; smtpClient.Connect(ip, point);//连接服务器 ns = smtpClient.GetStream(); if (SMTPReceive() != 220) return false; Send("HELO/r/n"); if (SMTPReceive() != 250) return false; //身份验证 if (isESMTP) { Send("AUTH LOGIN/r/n"); if (SMTPReceive() != 334) return false; string uname=_from.Substring(0,_from.IndexOf('@')); Send(ConvertToBase64(uname) + "/r/n"); if (SMTPReceive() != 334) return false; Send(ConvertToBase64(userPWD) + "/r/n"); if (SMTPReceive() != 235) return false; } Send("Mail From:<" + _from + ">/r/n");//发件人 if (SMTPReceive() != 250) return false; if (_tos.Length < 0) return false; foreach (string to in _tos) { Send("RCPT TO:<" + to + ">/r/n"); if (SMTPReceive() != 250) return false; } Send("DATA /r/n"); if (SMTPReceive() != 354) return false; StringBuilder content = new StringBuilder(); content.Append("From:" + _from + "/r/n"); if (_tos.Length <= 0) return false; foreach (string to in _tos) { content.AppendFormat("To:{0}/r/n", to); } //邮件标题 content.AppendFormat("Subject:{0}/r/n", _subject); //邮件编码格式 content.AppendFormat("Charset=/"{0}/"/r/n", "gb2312"); content.Append("/r/n"); content.Append(_content);//追加发送的内容 content.Append("/r/n./r/n"); Send(content.ToString()); if (SMTPReceive() != 250) return false; else return true; } catch (Exception exc) { return false; } } /// <summary> /// 将string型转换为Base64 /// </summary> /// <param name="str"></param> /// <returns></returns> string ConvertToBase64(string str) { byte[] data = Encoding.UTF8.GetBytes(str); return Convert.ToBase64String(data); } /// <summary> /// 发送消息至服务器 /// </summary> /// <param name="msg"></param> public void Send(string msg) { byte[] data = Encoding.UTF8.GetBytes(msg); ns.Write(data, 0, data.Length); ns.Flush(); } public int SMTPReceive() { try { byte[] data = new byte[1024]; int size = ns.Read(data, 0, 1024); string result = Encoding.UTF8.GetString(data, 0, size); int index = result.IndexOf(' '); if (index == -1) index = result.Length; result = result.Substring(0, index); return int.Parse(result); } catch { return 0; } } } }
试试其它关键字
发送邮件
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3