2012-03-20 147 views
1

我在我的一個struts應用程序中遇到了問題。我有JSP頁面,它接受來自用戶的輸入併發送到電子郵件地址。我已經按如下方式在JSP頁面中設置了編碼。阿拉伯語和JavaMail問題

<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" language="java"%> 

現在,當用戶提交表單到行動我使用下面的代碼發送電子郵件給收件人。

Properties properties = new Properties(); 
    properties.put("mail.smtp.host", "10.51.10.44"); 
    properties.put("mail.smtp.port", "25"); 
    properties.setProperty("charset","utf-8"); 
    Session session = Session.getDefaultInstance(properties, null); 
    try { 

      MimeMessage message = new MimeMessage(session); 
      String msg = formatEmail(userForm.getContent(),userForm.getUsername(),ip,host); 
      message.setFrom(new InternetAddress(from)); 
      message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); 
      message.setSubject(subject, "UTF-8"); 
      BodyPart messageBodyPart = new MimeBodyPart(); 
      messageBodyPart.setHeader("Content-Type","text/plain; charset=UTF-8"); 
      System.out.println("subject :-"+subject); 
      System.out.println("MESSAGE :-"+msg); 
      messageBodyPart.setContent(msg.toString(), "text/html;charset=UTF-8"); 
      Multipart multipart = new MimeMultipart(); 
      multipart.addBodyPart(messageBodyPart); 
      message.setContent(multipart); 
      Transport.send(message); 

但是,我的收件人收到阿拉伯電子郵件的內容和主題爲垃圾如下。

سيسيششسيؕكنشسيكتسيشماسيشنلاسيشتلشسيتلشسيجشسيلجسشتنسي 

請幫助...我知道這是一個編碼問題。我得到的成功,如果我這樣做,所有的這是從DB重試並顯示在JSP頁面中的其他文字都按問號的jsp的編碼改爲

<%@ page pageEncoding="UTF-8" contentType="text/html; charset=iso-8859-1" language="java"%> 

不過。

+2

:D .....ماالمشكلة? – ApprenticeHacker 2012-03-20 09:45:14

+0

對不起,我不會說阿拉伯語。問題是阿拉伯文本正在垃圾郵件中。一些編碼問題,但無法找出問題出在哪裏。 – vikka 2012-03-20 09:49:10

+0

在我的評論結尾處注意到'**:D **'笑臉。 – ApprenticeHacker 2012-03-20 09:49:57

回答

2

設置的內容也。

msg.setContent(text, "text/plain;Charset=UTF-8"); 
+0

我正在使用多部分電子郵件。我在我的代碼中使用了這個。 messageBodyPart.setContent(msg.toString(),「text/html; charset = UTF-8」);現在如果將它設置爲消息我得到一個異常。 – vikka 2012-03-20 09:56:45

+0

請閱讀此鏈接。 http://www.example-code.com/java/java-japanese-email.asp – 2012-03-20 10:02:57

+0

拉克什,我的猜測是,這個問題是不是與發送電子郵件的代碼。但在jsp頁面中接受電子郵件的主題和內容的編碼。如果我設置jsp charset = iso-8859-1的編碼,我會在電子郵件中獲得阿拉伯文。但是,這造成頁面中的阿拉伯文文本的問題, – vikka 2012-03-20 10:43:00