当前位置: 首页 > 知识库问答 >
问题:

邮件不呈现html并且格式错误

宰父淳
2023-03-14

我完全不明白这个问题。如果我在作为java应用程序运行时从main方法尝试,那么邮件以正确的主题和内容格式完美地出现。而当我从localhost尝试时,它以错误的格式出现,例如

------=_Part_0_1765202668.1460463643056Content-Type: text/html; charset=utf-8 Content-Transfer-编码: 7bit

我的内容

------=\u Part\u 0\u 1765202668.14604636056--

我已经添加了所有相关的JAR(javax.mail)。无论内容是什么,都只会是这样。这是同一段代码,它在main方法中运行良好,但在本地主机中运行不好。有什么想法吗?

一些相关代码

MimeMessage msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress(this.from));
    if ((this.replyTo != null) && (!this.replyTo.equals("")))
        msg.setReplyTo(InternetAddress.parse(this.replyTo));
    msg.setSentDate(new Date());
    InternetAddress[] address = InternetAddress.parse(this.to);
    msg.setRecipients(Message.RecipientType.TO, address);

    if (this.cc != null) {
        InternetAddress[] address1 = InternetAddress.parse(this.cc);
        msg.setRecipients(Message.RecipientType.CC, address1);
    }

    if (this.bcc != null) {
        InternetAddress[] address2 = InternetAddress.parse(this.bcc);
        msg.setRecipients(Message.RecipientType.BCC, address2);
    }
    msg.setSubject(this.subject);

    Multipart mp = new MimeMultipart();

    MimeBodyPart mbp = new MimeBodyPart();
    mbp.setContent(this.body,"text/html;charset=utf-8");

    mp.addBodyPart(mbp);

    if (this.attachfiles != null) {
        for (Enumeration e = this.attachfiles.keys(); e.hasMoreElements();) {
            String filename = (String) e.nextElement();
            mbp = new MimeBodyPart();

            FileDataSource fds = new FileDataSource(
                    (String) this.attachfiles.get(filename));
            mbp.setDataHandler(new DataHandler(fds));
            mbp.setFileName(filename);

            mp.addBodyPart(mbp);
        }

    }

    msg.setContent(mp);

    msg.setSentDate(new Date());

    Transport.send(msg);

共有1个答案

靳茂
2023-03-14

pom出现问题。xml证明包中存在冲突。Tomcat在Maven构建中自动包含自己的JavaMail包,该包来自web项目中的另外两个jar,这导致了问题,而不是从标准JavaMail jar导入。

只需排除以下jar

    <dependency>
    <groupId>org.apache.ws.commons.axiom</groupId>
    <artifactId>axiom-api</artifactId>
    <version>1.2.7</version>
    <exclusions>
        <exclusion>
            <artifactId>geronimo-javamail_1.4_spec</artifactId>
            <groupId>org.apache.geronimo.specs</groupId>
        </exclusion>
        <exclusion>
            <artifactId>geronimo-activation_1.1_spec</artifactId>
            <groupId>org.apache.geronimo.specs</groupId>
        </exclusion>
    </exclusions>
    </dependency>
 类似资料:
  • 我试图通过使用飞碟(9.0.7)库从XHTML生成一个PDF文件。文本和表格按预期呈现,但图像(png)不会显示在最终的PDF中。图像由绝对文件路径引用(例如< code > 我的java代码如下: 任何帮助都将不胜感激。

  • 本文向大家介绍python3使用SMTP发送HTML格式邮件,包括了python3使用SMTP发送HTML格式邮件的使用技巧和注意事项,需要的朋友参考一下 一、设置开启SMTP服务并获取授权码 可以参考第一篇文章,这里不再赘述:【一】Python3使用SMTP发送简单文本邮件 二、使用Python3 发送HTML格式的邮件 0.使用的环境为: Python 3.6.3 (64bit) PyChar

  • 我使用Queue发送电子邮件,代码如下: 在控制器部分,我使用send- 我正在使用视图: 现在,当我尝试发送时,收到的电子邮件中没有任何内容。 我已经调试了整个供应商\laravel\framework\src\illighted\Mail\Mailer。php类并发现renderView函数中无法呈现视图。 我还将视图Doctype更改为HTML5,但得到了相同的结果,没有内容。 渲染视图正在

  • 这是一个概念性的问题,因为我试图理解在react中处理表格数据的最佳方法,而不使用任何特殊组件或库。 我在子组件中动态创建的html表中有数据。数据来自父组件。有些列具有可编辑的内容,我通过“编辑”按钮触发这些内容,以重新呈现表格的一个版本,该版本包含可编辑列的所有行的内联文本框。 当我更改文本框的内容时,我希望能够单击“保存”按钮并保存所有行。 “保存”和“编辑”按钮不在表中内联,而是位于我的组

  • 问题内容: 当我尝试在Ubuntu 上编译时,出现此错误: 但是当我在其他Linux发行版(RedHat,Fedora,SUSE)上编译该文件时,该文件已成功编译。 有人有主意吗? 问题答案: 你应该用 如果您不进行格式化,则无需使用fprintf。如果要使用fprintf,请使用 Ubuntu上的默认编译器标志包括产生此错误的原因。 该标志用作防止引入与安全相关的错误的预防措施,想象一下如果您以

  • 我正在使用飞碟库生成pdf。但是我对一些html实体有问题。 我已经在搜索解决方案了,我在这个论坛和其他地方找到了很多提示,但仍然存在问题。 我尝试过这种方法: http://sdtidbits.blogspot.com/2008/11/flying-saucer-xhtml-rendering-and-local.html 但没有任何成功 我的代码如下所示: 其中pdf是要创建的新pdf的名称,