首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

功能要求: 1、压缩日志文件并作为邮件附件 2、邮件正文带上一些客户端信息 组件介绍 TIdSmtp:与服务器连接及数据发送,基于smtp协议 TIdMessage:自然就是报文信息了,包含收件人...关于附件 附件添加比较简单,Indy封装了一个专门消息类TIdAttachment,只要将文件用TIdAttachment附加即可: TIdAttachment.Create(IdMessage1.MessageParts...对email协议也不太熟悉,只知道是编码问题,但找了老半天也没找到相着解决方法。设置了IdMessageCharSet也没有效果。...这个通常用于字节流,比较附件就用这个格式。 quoted-printable:将由 US-ASCII 字符集中可打印字符组成数据编码。...,发现在附件与正文之间内容是空白,没有收到啊。

1.5K50

文件上传和下载

String FileItem.getString(); 获取当前表单项值 String FileItem,getName(); 获取上传文件名 String FileItem,...而attachment表示附件,也就是下载一个文件。fileName=后面表示下载文件名。 完成上面的两个步骤,下载文件是没问题了。...但是我们要下载文件是中文名的话,会发现下载无法正确显示出正确中文名。 原因是在响应头中,不能包含有中文字符,只能包含ASCII码。...响应头,表示收到数据怎么处理 attachment 表示附件,表示下载使用 filename 表示指定下载文件名*/ //把中文名进行UTF...解决IE和谷歌浏览器中附件中文名问题 如果客户端浏览器是IE浏览器或者是谷歌浏览器,我们需要使用URLEncoder类先对中文名进行UTF-8编码操作。

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

Web阶段:第十五章:文件上传&下载

String FileItem.getName(); 获取上传文件名 void FileItem.write( file ); 把上传文件写到file所指向位置。...这是需要下载。Content-Disposition是内容-配置,而attachment表示附件,也就是下载一个文件。fileName=后面,表示下载文件名。...但是如果我们要下载文件是中文名的话。你会发现,下载无法正确显示出正确中文名。 原因是在响应头中,不能包含有中文字符,只能包含ASCII码。...我们需要使用URLEncoder类先对中文名进行UTF-8编码操作。 因为IE浏览器和谷歌浏览器收到含有编码字符串后会以UTF-8字符集进行解码显示。...// attachment 表示附件 // fileName表示下载文件名 response.setHeader("Content-Disposition

30520

JavaMail 邮件发送,有意思附件名乱码 → 客户端正常,web端乱码

msg.setSentDate(new Date()); //调用Transportsend方法去发送邮件 Transport.send(msg); }   附件名是做了编码处理...乱码处理   这个上网一搜,很容易就能找到答案,加一个系统属性即可 mail.mime.splitlongparameters 默认值是 true ,表示编码附件文件名长度超过 60 之后会进行多段拆分...既然不信我,那我们从源码找答案   源码解析   设置附件时候,有这样一段代码   注意第一个 if 中条件,是有三个     1、附件编码长度     2、 mail.mime.splitlongparameters...为什么只有 web 版“乱码”   此刻需要纠正下,web 版出现附件名不是乱码,而是编码之后未能正确解码   为什么未能正确解码?   ...,忘记了往上翻一翻   2、为什么要进行附件多段拆分?

2.4K20

Response响应

("UTF-8"); /* 并且还要让浏览器显示编码也设为同样编码 */ response.setHeader("Content-Type", "text/html;charset=UTF-8")...视频文件会直接播放,图片或文本直接打开而不是下载 因此需要一些步骤,即需要写java代码也就是用Servlet 1.通过发送一个Servlet请求,把文件名发送给服务器 2.接收到文件名参数,获取文件绝对地址...mimeType = this.getServletContext().getMimeType(name); /* 获取后把这个格式设置上去,否则下载文件没有格式 */ response.setContentType.../* 浏览器去读取文件名是中文的话也会出现问题 但不同浏览器编码不同 先获取客服端信息,看是什么浏览器 */ String agent =...} // 设置以附件形式下载,并且下载文件名是上面处理后 response.setHeader("content-disposition", "attachment

1.2K20

技术笔记:IndyTIdSMTP改造,解决发送Html和主题截断问题

使用Indy来发邮件坑不少啊,只不过有比没有好吧,使用delphi6这种老工具没办法,只能使用了新一点Indy版本9,公司限制。。。...1、邮件包含TIdText和TIdAttachment时会出现TIdText无法发送问题 这个问题是因为Indy代码bug导致,也很奇怪这种Bug是因为没有经过测试呢?还是测试没有覆盖到?...所以解决方法是再添加一个相同TIdText,之前测试还挺好,但昨天发现反馈有人收到邮件中有重复body内容。也挺奇怪,我自己测试时候没有呢?而且试了不好邮箱都正常。。...网上一找有同样问题,原因也找到了: 【原因】IndyIdMessage组件在生成待发送邮件时,主题中有汉字时会按RFC2045~2047base64编码规范对主题进行编码,base64要求编码后每行长度不能超过...,对应 测试下来发现是正确

74960

Kettle使用_25 改变文件编码压缩与邮件

Kettle使用_25 改变文件编码压缩与邮件 需求:通过Kettle实现文本文件编码改写(GBK到UTF-8),复制后压缩并记录执行日志,最后将该压缩文件以附件形式发送出去。...解决方法:通过获取文件名、改变文件编码、处理文件、压缩文件、写日志、Java Script脚本、发送文件等组件来实现。其中Java Script脚本主要是定义变量,方便引用。...Step1:新建个转换 Step2:拖个获取文件名组件并配置如下: Step3:拖个Java Script(定义压缩文件路径、新复制路径、邮件发送配置信息等)组件,通过SHIFT连接获取文件名与该组件...改变文件编码配置(主要设置源文件名和目标文件名,源文件编码和目标文件编码) Step5:拖个处理文件组件,该位于转换应用分类下。通过SHIFT连接改变文件编码与该组件。...配置收件人、发件人 配置服务器、用户名、密码(这里以163为例,密码是允许第三方客户端访问时授权码) 配置邮件正文: 配置附件(需要勾选动态文件名): 完整流程及应用其它组件见下: 今天文章到此就结束了

60120

python使用smtplib和MIMEText发送邮件

,第三个 utf-8 设置编码 msg['Subject'] = subject # 邮件主题 msg['From'] = me # 发送者账号 msg['To']...smtplib import email # 文件名不可以和引入库同名 from email.mime.image import MIMEImage # 图片类型邮件 from email.mime.text...:发送信息参数说明: 1.内容必须是字符串 2.内容形式,文本类型默认为plain 3.内容编码使用utf-8 :其他: 图片和excel文件需要和本脚本一个目录下..."'# 设置图片在附件当中名字 message.attach(message_image)# 添加图片文件到邮件-附件中去 # ===========发送excel-附件=======...excel,rb形式读取,对于MIMEText()来说默认编码形式是base64 对于二进制文件来说没有设置base64,会出现乱码 message_xlsx['Content-Disposition

5K20

Java Web Servlet (Part D)- File Upload & Download

请求,GET方法有长度限制,POST没有长度限制,所以用POST方法进行上传文件 form标签中encType属性属性值必须是multipart/form-data,表示提交数据以多段(每一个表单项一个数据段...name属性值 String FileItem.getFiledName() // 获取当前表单项值 String FileItem.getString() // 获取上传文件文件名 String...("上传文件表单项文件名:" + fileName); // 获取当前目录 ServletContext servletContext...;filename=" + downloadFileName); Content-Disposition:响应头,表示收到数据如何处理 attachment:表示附件,下载使用 filename:表示指定下载文件名...("趋势图.jpg","UTF-8")); 重新启动应用,再次执行下载 可以正确显示中文名,并且谷歌火狐浏览器都可以正常显示文件中文名。

44020

JSP文件上传和下载

() 获取上传文件名 void FileItem.write( file ) 将上传文件写到 参数 file 所指向抽硬盘位置 fileupload 类库使用 上传文件表单: <form action...这是需要下载。而 attachment 表示附件,也就是下载一个文件。fileName=后面,表示下载文件名。 完成上面的两个步骤,下载文件是没问题了。但是如果我们要下载文件是中文名的话。...你会发现,下载无法正确显示出正确中文名。 原因是在响应头中,不能包含有中文字符,只能包含 ASCII 码。...HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 1、获取要下载文件名...,表示下载使用 // filename= 表示指定下载文件名 // url编码是把汉字转换成为%xx%xx格式 resp.setHeader

3.8K30

Java批量下载

批量导出下载查询出需要下载附件集合,下载附件到临时目录,压缩下载到临时文件夹附件,生成压缩包,最后下载压缩包 @Override @ApiOperation(value = "导出Word...完成:") public void batchExport(HttpServletResponse response) throws IOException { //查询需要导出附件地址...可以防止中文乱码 当然和easyexcel没有关系, 用UTF-8'zh_cn'来显示声明文件名称中包含中文 String fileName = URLEncoder.encode...(date, "UTF-8").replaceAll("\\+", "%20"); //设置响应头,attachment表示以附件形式下载,inline表示在线打开...//获取目录下子文件 File[] files = file.listFiles(); //遍历该目录下文件对象 for (File f : files) { //判断子目录是否存在子目录

55730

用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知

# 其中 ret 是布尔值,如果读取帧是正确则返回 True,如果文件读取到结尾,它返回值就为 False。 # frame 就是每一帧图像,是个三维矩阵。...参考文档: 对 Python 获取屏幕截图4种方法详解[1] pyautogui 是比较简单,但是不能指定获取程序窗口,因此窗口也不能遮挡,不过可以指定截屏位置,0.04s 一张截图,比 PyQt...MIMEMultipart 类型 MIME 邮件中各种不同类型内容是分段存储,各个段排列方式、位置信息都通过 Content-Type 域 multipart 类型来定义。...-8 设置编码 # 构造一个文本邮件对象, plain 原格式输出;html html格式输出 text = MIMEText(text, 'plain', 'utf-8') msg.attach(text...img = MIMEImage(sendImg) # 构造一个图片附件对象 # 指定下载文件类型为:附件, 并加上文件名 img['Content-Disposition'

1.4K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券