以下代码已用 .yeah 、qq 以及本人公司邮箱测试通过,可多发,可挂附件

本次测试邮件发送类,是用的winform

页面如下

窗口的后台代码如下:

 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; namespace MailServer
{
public partial class MailSend : Form
{
public MailSend()
{
InitializeComponent();
} /// <summary>
/// 发送按钮 的点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSend_Click(object sender, EventArgs e)
{
string name = txtName.Text.Trim(); //输入邮件地址(发件人的)
string pwd = txtPwd.Text.Trim(); //输入的邮箱密码(发件人的)
string content = txtContent.Text.Trim(); //邮件内容
string recieve = txtRecieve.Text.Trim(); //收件人邮件地址
string title = txtTitle.Text.Trim(); //邮件标题
string attachFile = txtFileName.Text; //附件的路径
try
{
//调用接口,发送邮件
EMailUtil.SendMail(name, pwd, title, content, recieve, attachFile);
MessageBox.Show("发送成功");
}
catch (Exception)
{
MessageBox.Show("发送失败");
} } /// <summary>
/// 浏览 按钮的点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{ DialogResult result = OFD.ShowDialog(); //打开文件浏览窗口
if (result == DialogResult.OK)
txtFileName.Text = OFD.FileName; //将附件路径保存到文本框
}
}
}

接口代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail; namespace MailServer
{
public class EMailUtil
{ /// <summary>
/// 邮件发送
/// </summary>
/// <param name="userName">发件人邮箱地址</param>
/// <param name="pwd">发件人邮箱密码</param>
/// <param name="mailSubject">邮件主题</param>
/// <param name="mailBody">邮件内容</param>
/// <param name="sendMailAddress">收件人地址(以";"分隔)</param>
/// <param name="attachment">附件</param>
public static void SendMail(string userName, string pwd, string mailSubject, string mailBody, string sendMailAddress, string attachment)
{
MailMessage m = new MailMessage();
string[] arrTo = sendMailAddress.Split(';'); //将以分号分隔的收件人地址拆开
foreach (string t in arrTo)
{
if (!string.IsNullOrEmpty(t))
m.To.Add(new MailAddress(t)); //添加收件人
}
m.From = new MailAddress(userName); //发件人
m.Subject = mailSubject; //邮件标题
m.Body = mailBody; //邮件内容
m.IsBodyHtml = true; m.SubjectEncoding = Encoding.GetEncoding("GB2312");
m.BodyEncoding = Encoding.GetEncoding("GB2312");
if (attachment.Length > )
{
m.Attachments.Add(new Attachment(attachment)); //添加附件
}
SmtpClient sm = new SmtpClient();
sm.Credentials = new System.Net.NetworkCredential(userName, pwd);
sm.DeliveryMethod = SmtpDeliveryMethod.Network;
sm.Host = "smtp.yeah.net"; //此处是邮件的服务器主机名,如果用163邮箱发送,就写smtp.163.com;126邮箱则写smtp.126.com
sm.Send(m);
}
}
}

此方法可以正常的发送邮件,

但是有一个尚未解决的问题。就是接口中,最后调用的Send方法没有返回值,这样不容易判断邮件的发送状态。

望大神们有知道的给个方案~在此多谢~

C#发送邮件的更多相关文章

  1. 利用SQLServer数据库发送邮件

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先 ...

  2. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

  3. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...

  4. 技术笔记:Indy控件发送邮件

    工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压 ...

  5. mono中发送邮件并保存本次收件人的地址

    在ios端mono开发中,发送邮件可以选择调用ios原生email程序.有两种方式实现这种功能,一是程序跳转到ipad中email程序,另外一种是将发送邮件的界面在自己应用里弹出. 首先第一种方式的代 ...

  6. Azure 上通过 SendGrid 发送邮件

    SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...

  7. 使用nodemailer发送邮件

    今天闲来无事,一时兴起看了下如果使用javascript来发送邮件.经过调研发现,nodeJs可以实现这个功能. 具体的步骤如下: 1.安装依赖 npm install nodemailer -g ( ...

  8. ASP.NET MVC 发送邮件(异步)

    最近写邮件发送搞死人了,最后的结果,真是醉了,现整理如下: 网上一搜一大把,到处都是.NET发送邮件的方法,我这里也大同小异的写了一个. 准备一个MailHelper.cs通用类,如下所示: 重要的命 ...

  9. MVC5发送邮件注册

    #region 发送邮件 //填写电子邮件地址,和显示名称 System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress(&qu ...

  10. ASP.NET用QQ,网易发送邮件以及添加附件

    教程:ASP.NET用QQ,网易发送邮件以及添加附件 这是我用QQ邮箱出现的异常: 命令顺序不正确. 服务器响应为:Error: need EHLO and AUTH first !无法从传输连接中读 ...

随机推荐

  1. subline text3 删除行 快捷键设置

    打开 首选项-->按键绑定 { "keys": ["ctrl+shift+k"], "command": "run_macr ...

  2. pom.xml详解

    setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件:而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和li ...

  3. 用EXCEL内嵌的Visual Basic for Application 编程,通过 UGSimple USB-GPIB 控制器来驱动仪器34401A,并从34401A读取数据

    现在市场上有很多中USB-GPIB 控制器,或叫 USB 转GPIB链接线. 每种GPIB控制器都有它的 函数库(dll库).各种GPIB 控制器的价钱插别很大.这里以一种价钱较便宜的USB-GPIB ...

  4. Sublim Text3快捷键大全

    Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格 ...

  5. 转 Selenium+Python+Eclipse网页自动化集成环境配置(附简单的测试程序)

    1 JDK.Python环境变量配置  下载JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html,直接双击安装, ...

  6. php工作笔记7-概率算法

    a/m  b/m   c/m   d/m   10%    40%    20% a+b+c+d+... < = m array k   =  {a,b,c...} randt = rand(1 ...

  7. springmvc 中controller与jsp传值

    参考:springmvc 中controller与jsp传值 springMVC:将controller中数据传递到jsp页面 jsp中,死活拿不到controller中的变量. 花了半天,网上列出各 ...

  8. 扩展jquery的选择器

    I’m sure you all know that it’s possible to create plugins and extend various aspects of the jQuery ...

  9. 应用EF访问SQLite数据

    创建项目,应用EF访问SQLite 1.创建项目 项目结构初始结构如下图所示,Netage.Data.SQLite 类库项目用于定义访问数据的接口和方法,Netage.SQLiteTest.UI 控制 ...

  10. 因为此版本的应用程序不支持其项目类型(.csproj)”之解

    有的时候vs无缘无故的出现如下错误:"因为此版本的应用程序不支持其项目类型(.csproj),若要打开它,请使用支持此类型项目的版本" 解决办法:如果是这个提示,可能是由于你安装m ...