C# 邮箱的使用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace 邮件发送
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
string email = "605490312@qq.com";
string emailBody = @"致:各位<br />
請查收附件的條碼資料。<br />
謝謝!!<br /> (該郵件由自動化系統後臺群發,請勿回覆。不便之處,敬請諒解!)";
SendEmail(email, "test主题", emailBody);
}
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="toEmail"></param>
/// <param name="subject"></param>
/// <param name="body"></param>
public static void SendEmail(string toEmail, string subject, string body)
{
string smtpServer = ConfigurationManager.AppSettings["SmtpServer"];
string SmtpFrom = ConfigurationManager.AppSettings["SmtpFrom"];
string SmtpUserName = ConfigurationManager.AppSettings["SmtpUserName"];
string SmtpPassword = ConfigurationManager.AppSettings["SmtpPassword"];
MailMessage mailObj = new MailMessage(); mailObj.IsBodyHtml = true;
mailObj.From = new MailAddress(SmtpFrom, SmtpUserName, Encoding.UTF8); //发送人邮箱地址
mailObj.To.Add(toEmail); //收件人邮箱地址
mailObj.To.Add("771981371@qq.com");
mailObj.To.Add("huangjialiang@perfsmart.com");
mailObj.Subject = subject; //主题
mailObj.Body = body; //正文
String sFile = @"D:\haifengtiaoma\20161031\1610MM004.xls";
String sFile1 = @"D:\haifengtiaoma\20161031\1610MM004_lot.csv";
Attachment aAttch = new Attachment(sFile);//添加附件 Attachment aAttch1 = new Attachment(sFile1);//每个附件就需要NEW一个Attachment
mailObj.Attachments.Add(aAttch);
mailObj.Attachments.Add(aAttch1); SmtpClient smtp = new SmtpClient();//通过.Net内置的SmtpClient类和邮件服务器进行通讯,发送邮件
//是和发邮件方的smtpt通讯,由发邮件方的邮件服务器和收邮件方的邮件服务器通信进行邮件的转接
smtp.Host = smtpServer; //smtp服务器名称
smtp.UseDefaultCredentials = true;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential(SmtpUserName, SmtpPassword); //发送人的登录名和密码
// smtp.Port = 587;
smtp.EnableSsl = false;//如果显示 服务器不支持安全连接。 则smtp.EnableSsl = false
smtp.Send(mailObj);
}
}
}
邮件发送代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings> <add key="SmtpServer" value="smtp.test.com"/>
<add key="SmtpFrom" value="hjl@test.com"/>
<add key="SmtpUserName" value="hjl@test.com"/>
<add key="SmtpPassword" value=""/> </appSettings>
</configuration>
C# 邮箱的使用的更多相关文章
- Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用
通过本文你将学会如下内容: 1,如何使用Xamarin开发跨平台(Windows,Android,iOS)应用. 2,如何使用微软的登录界面登入Microsoft账号. 3,如何使用Outlook邮箱 ...
- Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用(后续)
在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]里面提到了Microsoft 身份认证,其实这也是一大块需要注意的地方,特作为后续补充这些知识点.上章是使用了Microsof ...
- C#发送邮箱
之前自己从来没有做过发送邮箱的功能,前段时间项目需要,在找了很多帖子之后,终于实现了. 之后有整理了一下,写了一个类.直接给类传递信息,就可以发送了. 这里还需要说明的是,发送邮箱需要开通POP3/S ...
- iOS之判断手机号码、邮箱格式是否正确
//判断手机号码格式是否正确 + (BOOL)valiMobile:(NSString *)mobile{ mobile = [mobile stringByReplacingOccurren ...
- 技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送
1.腾讯QQ邮箱的授权码问题 因为腾讯邮箱折腾了个底朝天,其要搞什么授权码登录第三方客户端,否则会报这个错误: 'Error: 请使用授权码登录.详情请看: http://service.mail.q ...
- ★Kali信息收集~ 5.The Harvester:邮箱挖掘器
官网:http://www.edge-security.com 安装:apt-get install theHarvester 运行:终端输入 theharvester (小写) 用法+参数:(返回邮 ...
- Email系列(QQ邮箱 + 含附件的邮箱案例 + 项目实战)
平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html 邮箱系列:https://github.com/duniti ...
- 【代码笔记】iOS-验证手机号,邮箱,车牌号是否合法
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...
- 杂项之使用qq邮箱发送邮件
杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...
- [LeetCode] Delete Duplicate Emails 删除重复邮箱
Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique ...
随机推荐
- c语言学习笔记-do......while
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.do......while函数意义 循环执行(人机交互) 二.do......while函数结构 do{ 语句1: 语句2: ...
- 【备忘】SQL语句增加字段、修改字段、修改类型、修改默认值
一.修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约束名 ...
- 原生js实现二级联动下拉列表菜单
二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...
- ::before和::after伪元素的妙用
场景: 假如有一天,你的在写一个前端项目,是关于一份点餐商家电话信息表,你啪塔啪塔地写完了,突然间项目经理跑过来找你,要求你在每一个商家的电话号码前都添加一个电话符号,来使得电话号码更直观和页面更美观 ...
- python3 邮件发送
这是搜罗网络上的文章总结的一份文档, 参考: https://www.jb51.net/article/140604.htm https://www.jb51.net/article/140604.h ...
- 高通adsp架构下sensor
一.高通sensor架构: linux驱动由浅入深系列:高通sensor架构实例分析之一(整体概览+AP侧代码分析) linux驱动由浅入深系列:高通sensor架构实例分析之二(adsp驱动代码结构 ...
- 用Python实现数据结构之二叉搜索树
二叉搜索树 二叉搜索树是一种特殊的二叉树,它的特点是: 对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的中的所有节点中的值都大于p中的值 ...
- StartUML用法
转载地址 http://blog.csdn.NET/tianhai110 (下面参考了原博主的内容,也加入自己的内容,为了自己脑补,也方便其他看到的人脑补) 使用StartUML绘制用例图: ...
- Centos7.5调试/etc/sysctl.conf文件导致宕机
今天安装greenplus数据库,需要调试一个核心文件/etc/sysctl.conf文件,结果导致系统异常宕机,出现的问题就是使用任何命令都不能输出正确的结果,只有这个显示: 不知道是什么原因,ls ...
- January 18th, 2018 Week 03rd Thursday
To strive, to seek, to find, and not to yield. 去奋斗,去寻觅,去探索,但绝不屈服. Strive for our dreams, seek the ve ...