阿拉伯语和JavaMail问题

问题描述:

我在我的一个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

设置的内容也。

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