簡體   English   中英

Java郵件附件在Tomcat上不起作用

[英]Java mail attachment not working on Tomcat

我有一個通過電子郵件發送確認的應用程序。 電子郵件部分利用Commons Mail API。 發送郵件的簡單代碼如下所示;

import org.apache.commons.mail.*;
...
// Create the attachment
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("http://cashew.org/doc.pdf"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Testing attach");
attachment.setName("doc.pdf");

// Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.cashew.com");
email.addTo("ben@cashew.org");
email.setFrom("lot@cashew.org");
email.setSubject("Testing);
email.setMsg("testing message");

// add the attachment
email.attach(attachment);

// send the email
email.send();

我的問題是,當我從Eclipse執行此應用程序時,我收到的電子郵件帶有附件,沒有任何問題。 但是當我將應用程序部署到Tomcat服務器時(

嘗試過版本5和6都不好玩),電子郵件中包含以下內容;

------=_Part_0_25002283.1275298567928
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

testing


Regards,

los

------=_Part_0_25002283.1275298567928
Content-Type: application/pdf; name="doc.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; 
 filename="doc.pdf"
Content-Description: Testing attach

JVBERi0xLjQNJeLjz9MNCjYzIDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDMxMzE4Mi9PIDY1L0Ug
Mjg2NjY5L04gMS9UIDMxMTgwMi9IIFsgMjgzNiAzNzZdPj4NZW5kb2JqDSAgICAgICAgICAgICAg
DQp4cmVmDQo2MyAxMjcNCjAwMDAwMDAwMTYgMDAwMDAgbg0KMDAwMDAwMzM4MCAwMDAwMCBuDQow
MDAwMDAzNTIzIDAwMDAwIG4NCjAwMDAwMDQzMDcgMDAwMDAgbg0KMDAwMDAwNTEwOSAwMDAwMCBu
DQowMDAwMDA2Mjc5IDAwMDAwIG4NCjAwMDAwMDY0MTAgMDAwMDAgbg0KMDAwMDAwNjU0NiAwMDAw
MCBuDQowMDAwMDA3OTY3IDAwMDAwIG4NCjAwMDAwMDkwMjMgMDAwMDAgbg0KMDAwMDAwOTk0OSAw
MDAwMCBuDQowMDAwMDExMDAwIDAwMDAwIG4NCjAwMDAwMTIwNTkgMDAwMDAgbg0KMDAwMDAxMjky
MCAwMDAwMCBuDQowMDAwMDEyOTU0IDAwMDAwIG4NCjAwMDAwMTI5ODIgMDAwMDAgbg0KMDAwMDAx
.......
CnN0YXJ0eHJlZg0KMTE2DQolJUVPRg0K
------=_Part_0_25002283.1275298567928--

我還注意到的一件事是,標題信息不顯示TO和Subject值。 嗯,很奇怪。 我必須指出,上面不是生成DEBUG的,它是我的Outlook客戶端中收到的實際消息。

有人能幫助我嗎!

更新 :該應用程序非常簡單。 也將零件和文本消息附加為單獨的零件。

   public final void Email(String from, String to, String cc,
          String subject, String message, String doc, String bcc) {

      MultiPartEmail email = new MultiPartEmail();

    try {

        if (!(doc == null)) {
                     EmailAttachment attachment = new EmailAttachment();
                     attachment.setURL(new URL("http://cashew.org/doc.pdf"));
         attachment.setDisposition(EmailAttachment.ATTACHMENT);
         attachment.setDescription("Testing attach");
         attachment.setName("doc.pdf");
                     email.attach(attachment);  
        }


        email.setHostName("mail.cashew.com");

        // [ Set Header details
        email.setTo(getAddress(to));
        email.setFrom(from);
        email.setSubject(subject);


        if (!(cc == null)) {
              eEmail.setCc(getAddress(cc));
        }

        if (!(bcc == null)) {
            email.setBcc(getAddress(bcc));
        }

        email.setMsg(message);

        email.send();


    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

有人知道發生了什么嗎?

這就是問題

原因 :所描述的問題是由Apache CXF 2或Axiom的傳遞依賴關系引起的。

解決方案 :要解決此問題,請從構建中排除geronimo-javamail_1.4_spec,而僅依靠javax的mail-1.4.x.jar。

  <!--For Apache CXF 2 Project: Do this Exclude--> <dependency> <groupid>org.apache.cxf</groupid> <artifactid>cxf-rt-frontend-jaxws</artifactid> <version>2.2.6</version> <exclusions> <exclusion> <groupid>org.apache.geronimo.specs</groupid> <artifactid>geronimo-javamail_1.4_spec</artifactid> </exclusion> <exclusion> <groupid>org.apache.geronimo.specs</groupid> <artifactid>geronimo-activation_1.1_spec</artifactid> </exclusion> </exclusions> </dependency> <!--For Axis2 Project with Axiom Dependency: Do this Exclude--> <dependency> <groupid>org.apache.ws.commons.axiom</groupid> <artifactid>axiom-api</artifactid> <version>1.2.8</version> <exclusions> <exclusion> <groupid>org.apache.geronimo.specs</groupid> <artifactid>geronimo-activation_1.1_spec</artifactid> </exclusion> <exclusion> <groupid>org.apache.geronimo.specs</groupid> <artifactid>geronimo-javamail_1.4_spec</artifactid> </exclusion> </exclusions> </dependency> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM