2016-04-12 9 views
1

私はこの問題について全く理解していません。私がjavaアプリケーションとして実行しているときにmainメソッドから試しているのであれば、メールは適切な件名と内容で完全に書かれています。 私はローカルホストからしようとすると、それが壊れた形式にしていながらなどメールをHTMLで表示せず、フォーマットが壊れています

------ = _ Part_0_1765202668.1460463643056のContent-Type:text/htmlの。文字セット= UTF-8コンテンツ転送 - エンコード:7ビット

マイコンテンツ

------ = _ Part_0_1765202668.1460463643056--

私は、関連するすべてのjarファイル(のjavaxを追加しました。郵便物)。内容が何であっても、それはそのようにしか来ないでしょう。メインコードからはうまく動作しますが、ローカルホストでは動作しません。 アイデア?

いくつかの関連するコード

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

次のjarファイルを除外します。あなたは何をやっているのか良く説明できますか? – Henry

+0

"localhost"とは、何らかのアプリケーションサーバーで動作しているということですか?サーバーが同じバージョンのJavaMailを使用していますか? [JavaMailデバッグ出力](http://www.oracle.com/technetwork/java/javamail/faq/index.html#debug)には何が表示されますか? –

答えて

1

はパッケージで紛争があった判明のpom.xmlに問題がありました。 Tomcatは、標準のJavaMail jarからインポートするのではなく、問題を引き起こしていたWebプロジェクトの他の2つのJarからのMavenビルドに、独自のJavaMailパッケージを自動的に組み込みます。

はちょうど私が「メインからしよう」と「ローカルホストから試みる」との違いを得ることはありません

<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> 
関連する問題