`
jiony
  • 浏览: 185182 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

邮件附件名超长问题的解决

阅读更多

关于这个问题:我的理解思路是:

我找到tmailercommon项目下的com.tmailer.common.util.HttpUtil这个类中的这个方法
public static String encodeFilename(Browser browser, String filename) {
        if (StringUtil.isAsciiString(filename) && filename.indexOf('"') == -1)
            return '"' + filename + '"';
        try {
            if (browser == Browser.IE)
                //since URLEncoder.encode() limit 153 bytes,so modify by zhongdh 20091116
                // return URLEncoder.encode(filename, "utf-8");
                return new String(filename.getBytes("gb18030"), "ISO8859-1");
                //end
            else if (browser == Browser.FIREFOX)
                return '"' + MimeUtility.encodeText(filename, "utf-8", "B") + '"';
            else
                return '"' + MimeUtility.encodeText(filename, "utf-8", "B") + '"';
        } catch (UnsupportedEncodingException uee) {
            return filename;
        }
    }
 
发现IE与firefox是有分别处理的,所以一开始我也按照firefox的处理方式测试了下,结果发现在IE根本是不支持base64的
或许firefox是支持base64所以它的头信息是不会这么长。而大部分用户都是用windows系统,而该系统的文件名也是有限制的,我昨天测试了下好像是不能超过30个字。所以firefox支持base64貌似没有限制。而IE是支持URLEncoder.encode这个编码,在头信息中,如果文件名很长,头信息是变得很长,而且的都是%d之类的。所以就试试使用最原始的转化编码的方式,即new String(filename.getBytes("gb18030"), "ISO8859-1"); 而这里是要使用ISO8859-1因为它是url传过来的。
分享到:
评论

相关推荐

    js发送邮件带附件

    尽管使用Jmail通过JavaScript在网页中发送带有附件的邮件在特定环境下仍然可行,但由于其兼容性和安全性问题,这种方法并不推荐用于现代Web应用。对于需要跨平台、高安全性的邮件发送需求,更建议采用邮件API服务或...

    vb 发带附件邮件

    在VB(Visual Basic)编程环境中,发送带有附件的电子邮件是一个常见的需求。VB6(Visual Basic 6.0)是这个任务的经典实现环境。本篇将详细介绍如何使用VB6编写程序来实现无控件发送带附件的邮件。 首先,我们需要...

    C#发送邮件(带附件)

    本教程将详细讲解如何使用C#实现一个能够发送带有附件的邮件功能,以满足实际开发需求。我们将主要涉及SMTP(Simple Mail Transfer Protocol)协议以及.NET Framework提供的MailMessage和SmtpClient类。 首先,我们...

    PHP发送带附件的邮件

    在PHP中发送带附件的邮件是一项常见的任务,尤其在网站后台功能开发中,例如用户注册确认...希望这个教程能帮助你解决PHP发送带附件邮件的问题。如果你遇到任何困难,记得查阅PHPMailer的官方文档或在线社区寻求帮助。

    java 邮件发送 可带附件

    在Java中,我们可以使用JavaMail API来实现邮件的发送,包括带有附件的功能。以下是对这个主题的详细解释: 一、JavaMail API简介 JavaMail API是一个开源的Java库,用于处理邮件服务。它提供了丰富的接口和类,...

    .net带附件的邮件发送

    在.NET框架下,实现带有附件的邮件发送是一项常见的需求,特别是在企业级应用中,这种功能对于报告、通知或数据共享尤为重要。以下是从给定代码片段中提取的关键知识点,以及对邮件发送过程的深入解析。 ### 关键...

    javaemail发送邮件(带附件)

    "javaemail发送邮件(带附件)" javaemail发送邮件(带附件)是使用Java技术实现的邮件发送功能,...javaemail发送邮件(带附件)功能需要精心设置邮件参数、捕获异常、处理多线程等问题,以确保邮件发送的稳定性和安全性。

    php的超简单的带附件的邮件

    在PHP中发送带有附件的电子邮件是一项常见的任务,尤其在网站需要提供下载链接或者发送报告时。这个主题将深入探讨如何实现这一功能,并基于提供的“attachmail”文件进行讲解。 首先,PHP内置了一个`mail()`函数,...

    带附件的发送邮件JSP程序

    【标题】:“带附件的发送邮件JSP程序” 在IT领域,JSP(JavaServer Pages)是一种基于Java的服务器端脚本语言,用于创建动态网页。这个“带附件的发送邮件JSP程序”是一个功能丰富的应用程序,允许用户通过网页界...

    自动发送不同联系人带附件邮件的outlook宏

    ### 自动发送不同联系人带附件邮件的Outlook宏步骤详解 #### 1. 邮件信息写入Excel 首先,创建一个Excel表格,用于存储所有待发送邮件的详细信息,包括收件人的邮箱地址、邮件主题、邮件正文以及附件路径。这一...

    发送带附件的邮件

    在IT行业中,发送带附件的邮件是一项常见的任务,特别是在自动化工作流程、客户服务或者内部通信中。这个场景通常涉及到编程,特别是使用Java语言进行邮件开发。本文将深入探讨如何使用Java来实现这一功能。 首先,...

    用Delphi2010 实现邮件附件收发功能

    用Delphi2010 实现邮件附件收发功能 TIdPOP3组件简介 TIdPOP3 是用来接收邮件服务器的邮件信息到用户端的一个组件。它实现了RFC 1939协议。 在使用TIdPOP3组件时需设置它的几个成员属性。 Host :指定邮件服务器,...

    好看的jenkins配置发送邮件模板带附件详情+总览+报告

    好看的jenkins配置发送邮件模板带附件详情+总览+报告. 效果如下图:https://img-blog.csdnimg.cn/20191011110225308.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9...

    C++带附件邮件发送

    总结来说,"C++带附件邮件发送"这一主题涵盖了网络编程、SMTP协议、邮件格式化和可能的第三方库使用等多个IT知识领域。通过学习和实践这个项目,开发者不仅可以提升C++编程技能,还能深入理解电子邮件系统的运作机制...

    vb带附件发邮件最终版本

    总结来说,"vb带附件发邮件最终版本"是通过VB利用.NET框架的邮件服务类库实现的,它整合了SMTP服务器设置、邮件信息构建和附件添加等功能,提供了一个完整的邮件发送解决方案。开发者可以根据自己的需求进行定制和...

    C语言socket/smtp发送邮件,支持附件,支持windows和linux

    * 可以发送带附件的邮件,附件大小限制由发送方服务器而定,暂未测试具体为多少MB * 附件可以是多个 * 邮件内容和主题可以是空,但当有附件时,主题取第一个附件的文件名(不含扩展名) * 密码验证均为base64加密 * ...

    james和javamail实现邮件收发(带发送附件)

    首先,James(Apache James)是一个开源的邮件服务器,它支持SMTP、POP3和IMAP协议,可以作为企业级的邮件解决方案。James的核心特性之一是其可扩展性,可以通过插件连接到各种数据库,以便存储和管理邮件数据。 ...

    Kettle JOB执行出错,发送带附件的邮件

    Kettle JOB执行出错,发送带附件的邮件

    java Exchange收发邮件加附件

    以下是一个简单的发送邮件带附件的Java代码示例: ```java ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1); ExchangeCredentials credentials = new WebCredentials(...

    Spring 使用163发邮件带附件

    标题 "Spring 使用163发邮件带附件" 涉及到的是在Java开发中,使用Spring框架发送电子邮件,特别是包含附件的邮件。这通常在系统需要自动化通知、报告发送或者用户验证过程中非常常见。Spring提供了JavaMailSender...

Global site tag (gtag.js) - Google Analytics