是4.0的,说以添加包是

代码:

public class SendEmailInfo
{
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="model"></param>
public string Send163Email(EmailSend model)
{
try
{
MailMessage mailMsg = new MailMessage();
//邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
mailMsg.Priority = MailPriority.Normal;
//发件人
mailMsg.From = new MailAddress(model.addresser.caccount);
//收件人
foreach (var it in model.recipients)
{
mailMsg.To.Add(new MailAddress(it));
}
//如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
mailMsg.SubjectEncoding = Encoding.GetEncoding();
//标题
mailMsg.Subject = model.titlite;
//正文
mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(model.context, Encoding.UTF8, MediaTypeNames.Text.Html));
//附件
if (model.accessoryPath != null)
{
foreach (string path in model.accessoryPath)
{
//将附件添加到邮件
mailMsg.Attachments.Add(new Attachment(path));
//获取或设置此电子邮件的发送通知。
mailMsg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
}
}
SmtpClient smtpClient = new SmtpClient();
//根据发件人的邮件地址判断发件服务器地址 默认端口一般是25
string[] addressor = model.addresser.caccount.Split(new Char[] { '@', '.' });
switch (addressor[])
{
case "":
smtpClient.Host = "smtp.163.com";
break;
case "":
smtpClient.Host = "smtp.126.com";
break;
case "qq":
smtpClient.Host = "smtp.qq.com";
break;
case "gmail":
smtpClient.Host = "smtp.gmail.com";
break;
case "hotmail":
smtpClient.Host = "smtp.live.com";//outlook邮箱//client.Port = 587;
break;
case "foxmail":
smtpClient.Host = "smtp.foxmail.com";
break;
case "sina":
smtpClient.Host = "smtp.sina.com.cn";
break;
default:
smtpClient.Host = "smtp.exmail.qq.com";//qq企业邮箱
break;
}
//使用安全加密连接。
smtpClient.EnableSsl = true;
//不和请求一块发送。
smtpClient.UseDefaultCredentials = false;
//验证发件人身份(发件人的邮箱,邮箱里的生成授权码);
smtpClient.Credentials = new NetworkCredential(model.addresser.caccount, model.addresser.password);
//如果发送失败,SMTP 服务器将发送 失败邮件告诉我
mailMsg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
//加这段之前用公司邮箱发送报错:根据验证过程,远程证书无效
                //加上后解决问题
                ServicePointManager.ServerCertificateValidationCallback = delegate (Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };

smtpClient.Send(mailMsg);
smtpClient.Dispose();
return "";
}
catch (Exception ex)
{
Console.Write(ex.Message);
return ex.Message;
}
}
} public class EmailSend
{
/// <summary>
/// 发件人
/// </summary>
public Addresser addresser { get; set; }
/// <summary>
/// 收件人
/// </summary>
public List<string> recipients { get; set; }
/// <summary>
/// 标题
/// </summary>
public string titlite { get; set; }
/// <summary>
/// 内容
/// </summary>
public string context { get; set; }
/// <summary>
/// 附件地址
/// </summary>
public List<string> accessoryPath { get; set; }
} /// <summary>
/// 发件人
/// </summary>
public class Addresser
{
/// <summary>
/// 账号
/// </summary>
public string caccount { get; set; }
/// <summary>
/// 秘钥
/// </summary>
public string password { get; set; }
}

demo的地址:https://gitee.com/cainiaoA/sendEmail

c# 163网易发送邮件的更多相关文章

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

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

  2. MUTT+MSMTP利用163服务器发送邮件

    监控系统发送告警邮件,我们自己搭建邮件服务器,成本较高,所以可以使用163等第三方MTA帮助我们发送.MUTT+MSMTP是一个很好的选择,具体实现如下: tar -xvf msmtp-1.6.5.t ...

  3. app里使用163邮箱发送邮件,被163认为是垃圾邮件的坑爹经历!_ !

    最近有个项目,要发邮件给用户设定的邮箱报警,然后就用了163邮箱,代码是网上借来的^^,如下: package com.smartdoorbell.util; import android.os.As ...

  4. Centos 5.x/6.x 配置163网易yum源

    Centos系统默认都是系统自带的yum源,国内用户用yum源安装比较慢,为了提高效率,一般我们会配置国内的yum源.国内比较好的yum源有网易yum源.搜狐yum源等. 我感觉网易的yum源比较好用 ...

  5. phpmailer使用163邮件发送邮件例子

    注意:如果你的服务器安装了卖咖啡并且开户病毒最大防护功能我们需要关闭一个邮件防护哦,否则你的邮件发不出去给被这款杀毒给拦截哦. 1. 使用gmail发送的脚本 代码如下 复制代码 include(&q ...

  6. java调用163邮箱发送邮件

    1:注册一个163邮箱,http://mail.163.com 调用发送邮件代码,查询smtp.163.com,作为发送邮件的服务器ip,类似的邮箱服务器应该也可以. MailSenderInfo m ...

  7. dedecms织梦自定义表单发送到邮箱-用163邮箱发送邮件

    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=dedecms 邮箱&oq=d ...

  8. python使用随机的163账号发送邮件

    import linecache import smtplib import time import linecache import random #算出txt的行数,163账号_2.txt中,每一 ...

  9. CentOS7像外部163邮箱发送邮件

    我们在运维过程中,为了随时了解服务器的工作状态,出现问题随时提醒,像个人邮箱发送邮件是必须的,但是刚刚安装好的系统是无法发送邮件的.需要们进行一些配置和程序的安装,我安装完系统后,自带mail12.5 ...

随机推荐

  1. 006-多线程-集合-Set-ConcurrentSkipListSet

    一.简介 ConcurrentSkipListSet是线程安全的有序的集合,适用于高并发的场景.ConcurrentSkipListSet和TreeSet,它们虽然都是有序的集合.但是,第一,它们的线 ...

  2. Javascript——概述 && 继承 && 复用 && 私有成员 && 构造函数

    原文链接:A re-introduction to JavaScript (JS tutorial) Why a re-introduction? Because JavaScript is noto ...

  3. iOS 将一个UIImage缩放到指定Size

    这方法挺实用的,直接调用就可以得到想要的size. //将一个UIImage缩放变换到指定Size -(UIImage*) OriginImage:(UIImage *)image scaleToSi ...

  4. Java-WebSocket调用报错:WebSocketClient objects are not reuseable

    我的代码 import com.google.common.collect.ImmutableMap; import com.google.common.io.ByteArrayDataOutput; ...

  5. keepalived两台机器同时出现vip问题

    配置文件: 主:192.168.1.14 ! Configuration File for keepalived global_defs { script_user root enable_scrip ...

  6. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

  7. pytest文档20-pytest-html报告优化(添加Description)

    前言 pytest-html测试报告默认是不展示用例描述Description内容,之前用unittest生成的报告是可以展示用例的描述,也就是test开头的用例下三个引号里面的注释(docstrin ...

  8. Hyperledger Fabric1.4 手动搭建过程

    1.生成证书: #路径需要更改为自己的路径 cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network ...

  9. 【C/C++开发】ffplay中的FrameQueue的自我理解

    最近在研究ffplay,以下是本人今天在研究FrameQueue的时候整理的笔记,如有错误还请有心人指出来~ //这个队列是一个循环队列,windex是指其中的首元素,rindex是指其中的尾部元素. ...

  10. Redis ZSet 有序集合

    有序集合类型与集合类型的区别就是他是有序的.有序集合是在集合的基础上为每一个元素关联一个分数,这就让有序集合不仅支持插入,删除,判断元素是否存在等操作外,还支持获取分数最高/最低的前N个元素.有序集合 ...