C# 解决 邮件发送Excel附件后,excel处于锁定状态
当使用c#自带的MailMessage类发送excel附件时,再次打开excel会提示处于锁定状态。
解决思路:Attachment是添加附件的类,邮件发送后没有释放该类
public string SendSmtpeMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody, string excelPath)
        {
            try
            {
                //这样写防止发送excel附件后,excel处于锁定状态
                using (var message = new MailMessage(strFrom, strto, strSubject, strBody))
                {
                    using (var attachment = new Attachment(excelPath)) //添加附件
                    {
                        message.Attachments.Add(attachment);
                        message.BodyEncoding = System.Text.Encoding.UTF8;
                        message.IsBodyHtml = true;
using (var client = new SmtpClient(strSmtpServer))
                        {
                            client.Timeout = 9999999;
                            client.UseDefaultCredentials = false;
                            client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
                            client.DeliveryMethod = SmtpDeliveryMethod.Network;
                            client.Send(message);
                        }
                    } 
                }  
            }
            catch (Exception ex)
            {
                Program.form.text.Invoke(ex.ToString());
                return ex.ToString();
            }
            return "";
        }
C# 解决 邮件发送Excel附件后,excel处于锁定状态的更多相关文章
- java mail邮件发送(带附件) 支持SSL
		java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ... 
- System.Net.Mail邮件发送抄送附件(多个)
		/// <summary> /// 邮件发送抄送附件 /// </summary> /// <param name="mailTo">收件人(可 ... 
- Spring的javaMail邮件发送(带附件)
		项目中经常用到邮件功能,在这里简单的做一下笔记,方便日后温习. 首先需要在配置文件jdbc.properties添加: #------------ Mail ------------ mail.smt ... 
- 填报表导出excel后不可写的单元格处于锁定状态
		 填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作. 报表导出为excel时,润乾导出excel包默认情况下不对excel单 ... 
- 关于解决JQuery发送Ajax请求后,IE缓存数据不更新的问题
		http://www.cnblogs.com/lys_013/archive/2013/08/07/3243435.html 今天在做ajax页面无刷新请求后台服务器数据的时候,IE下遭遇Ajax缓存 ... 
- C#邮件发送(含附件)
		class SendEmail { static void Main(string[] args) { string from = "发件人@yingu.com"; string ... 
- redmine 配置邮件发送为async后,不能发送邮件(转载)
		通过参考:http://www.oschina.net/question/2005703_16688 之前configuration.yaml文件中email的相关配置如下: production: ... 
- smtp ssl模式邮件发送与附件添加
		#!/usr/bin/python3 import os import smtplib from email.mime.text import MIMEText from email.mime.mul ... 
- 解决邮件发送错误:503 Error: need EHLO and AUTH first
		引用文章 https://blog.csdn.net/lingfeian/article/details/96731620 问题描述 2019-07-21 16:14:00.449 ERROR 966 ... 
随机推荐
- Binder学习笔记(三)—— binder客户端是如何组织checkService数据的
			起点从TestClient.cpp的main函数发起: int main() { sp < IServiceManager > sm = defaultServiceManager(); ... 
- MySQL之常用命令
			前言 在说MySQL命令之前,需要介绍一些navicat:navicat是一套快速.可靠并且价格相宜的数据库管理工具,它的出现简化了数据库的管理,降低了管理成本,提高了对数据库的管理效率.Navica ... 
- Java性能优化之高性能JAVA代码的若干个习惯
			创建对象: 1.避免在循环体中创建对象,循环前应该创建对象,避免浪费更多内存空间和增加GC负担 这种情况在我们的实际应用中经常遇到,而且我们很容易犯类似的错误,例如下面的代码: for (int i ... 
- winform只能打开一个子窗口
			源地址:https://zhidao.baidu.com/question/1511266887807047660.html 指定弹出的子窗口为模态窗口就可以了,这样在子窗口没有关闭前,是不能操作父窗 ... 
- 序列终结者 BZOJ 1251 Splay
			题目背景 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术 ... 
- 百度地图sdk使用
			1.android开发百度地图定位,我怎么老是定到几内亚湾 权限问题,首先安卓6.0之后的Android的系统需要动态申请权限. 然后百度地图的sdk的不同功能,申请的权限不同,每个功能都需要看官方文 ... 
- pycharm、idea 2018软件安装教程
			Python3.7安装: https://www.jb51.net/article/146326.htm pycharm软件: https://www.jianshu.com/p/cf77d74bef ... 
- C语言之对指针概念的初步探究
			指针?什么是指针? 指针(pointer)是一个值为内存地址的变量(或数据对象). 接下来从变量的角度分析: 变量有两个属性,一个是地址,一个是值. 指针与普通变量的不同之处在于:指针变量的值是一个内 ... 
- 需要提升权限才能运行dism
			利用系统安装盘来安装.net3.5时,遇到的问题. [命令] dism.exe /online /enable-feature /featurename:NetFX3 /Source:F:\sourc ... 
- 一个基于QT简单登录对话框(带验证码功能)
			1. 对话框样式 2. 源代码 ①. main.cpp #include <QtGui/QApplication> #include "QLoginDialog.h" ... 
