我在我的一個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"%>
不過。
:D .....ماالمشكلة? – ApprenticeHacker 2012-03-20 09:45:14
對不起,我不會說阿拉伯語。問題是阿拉伯文本正在垃圾郵件中。一些編碼問題,但無法找出問題出在哪裏。 – vikka 2012-03-20 09:49:10
在我的評論結尾處注意到'**:D **'笑臉。 – ApprenticeHacker 2012-03-20 09:49:57