sunitac2231600
sunitac2231600
01-11-2016
Hi All,
I have a simple abc.txt email template under /etc/notification/email .
**************************abc.txt****************************
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<pre style="white-space:normal;">
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
<br/><br/>
${pages}
</table>
</pre>
</body>
</html>
Whenever off time property will be changed the mail will be triggered. For this code is written as below.
In onevent we are calling below
emailService.sendEmail(EMAIL_TEMPLATE_PATH,emailParamsThirty,groupEmail);
******************************EMAIL CODE*********************************
private Map<String, String> prepareEmailParams(ResourceResolver resourceResolver, String pagePath) {
final Map<String, String> emailParams = new HashMap<String,String>();
String pagePath = resourceResolver.map(page.getPath());
strBufferPages.append("<li><a href='").append(pagePath).append(".html").append("'>");
strBufferPages.append("第65回日"); --------THIS ONE WHEN WE WILL GET IN MAIL IT IS COMING LIKE ?65??
strBufferPages.append("</a></li>");
strBufferPages.append("</ul> </td></tr>");
//LOGGER.info("pagesExists ========== +++++++++++++ ==== " + strBufferPages.toString());
emailParams.put("pages", strBufferPages.toString());
}
But When I am getting mail , the UTF-8 is removed and it is coming like ?65??
Can anybody please help me on this.
Thanks in advance.
smacdonald2008
smacdonald2008
01-11-2016
Looks like an encoding issue. Set the encoding in the message content header - for example:
msg.setContent(message, "text/plain; charset=UTF-8");
kolpur
kolpur
01-11-2016
You might need to use the following:
sb.append(new String(bytes, charset));
sunitac2231600
sunitac2231600
01-11-2016
Hi Scott,
Yes it is an encoding issue. I am using AEM 6.0 SP1. Also I have set the default parameter encoding as UTF-8 , as shown in below screenshot.
I am new to AEM. So can you please tell me where can I Set the below encoding in the message content header?
sunitac2231600
sunitac2231600
01-11-2016
Hi Srini,
I tried the code suggested by you in my java code. But still I am getting Question marks (?65??).
******************CHANGED CODE*******************
String pageTitle1 = "第65回日";
pageTitle1 = new String(pageTitle1.getBytes("UTF-8"));
strBufferPages.append("<li><a href='").append(externLink).append(".html").append("'>");
strBufferPages.append(pageTitle1);
strBufferPages.append("</a></li>");
strBufferPages.append("</ul> </td></tr>");
kolpur
kolpur
02-11-2016
Hi Sunita,
1. Try to put the hard-coded Japanese string in the mail (abc.txt) directly and check if you are getting it right - if this is working, then it means you are not encoding it properly while setting the params
2. If above works, try setting the Japanese string only (new String(pageTitle.getBytes("UTF-8"))), then use the StringBuilder to append the full html.
sunitac2231600
sunitac2231600
02-11-2016
Hi Srini,
Thanks a lot for your help. Yes I put directly in abc.txt as shown below. AND IT IS NOT COMING FINE. It is coming as ?65??
**************************abc.txt****************************
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<pre style="white-space:normal;">
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
<br/><br/>
第65回日
</table>
</pre>
</body>
</html>
What to do next step ?
kolpur
kolpur
02-11-2016
Hi Sunita,
Check the email headers you received if its encoded in UTF-8 (i think it wouldn't be). What is the emailService class you are using to send email?OOB or custom?If custom, ensure you are setting the encoding to the email.
sunitac2231600
sunitac2231600
02-11-2016
Hi Srini,
I check the email headers and UTF-8 is there , as shown below.
**************EMAIL HEADER *********************
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<pre style="white-space:normal;">
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
<br/><br/>
?65??
</table>
</pre>
</body>
</html>
I am using OOB for email , as shown below.
****************************EmailService Class******************
import com.adobe.acs.commons.email.EmailService;
@Reference
EmailService emailService;
Map<String, String> emailParams = prepareEmailParams(resourceResolver,path);
emailService.sendEmail(EMAIL_TEMPLATE_PATH,emailParams, groupEmail);
Please let me know what to do next step ....
smacdonald2008
smacdonald2008
02-11-2016
In your Java code - have you set proper encoding as well?