powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Русские буквы при отправке почты из JSP
3 сообщений из 3, страница 1 из 1
Русские буквы при отправке почты из JSP
    #33748490
carper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Все темы про кодировки (в том числе и про установки кодировки в в JavaMail ) читал (может плохо читал?)
2. Использую taglib от http://jakarta.apache.org/taglibs/doc/mailer-doc/intro.html, последней версии.

Беда не в том, что кодировка не верна, беда в том, что вообще не могу задать кодировку.

код Java
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   <%-- Отправим письмо --%> 
   <mt:mail to="meself@org.mycompany.ru" from="fake@fake.net">
   <mt:header name="Content-type" value="text/html; charset=Cp1251"/> 
     <mt:server>myPostServer</mt:server>
     <mt:subject>learning about the mail tag library</mt:subject>
      <mt:message>"Привет"</mt:message>
       <mt:send>
        The following error(s) have occured: 
      <mt:error id="err">
         <jsp:getProperty name="err" property="error"/>
      </mt:error>
     </mt:send>
</mt:mail>  

 
Похоже, что тэг mt:header просто игнорируется и в теле письма вместо моего "Привет" приходят знаки вопроса.
Попытки поиграться с регистром символов, типом сообщения и местом размещения тэга (в начале, непосредственно перед телом сообщения или точно до тэга <mt:/send>) ничего не дали.

Заранее скажу, что сама страничка отправки сообщений все отображает нормально, т.е. похоже это никак не проблема с кодировкой внутри страницы.

Тем более, что в полученном письме четко видно, что никакие установки header элементарно не отработали - всегда стоит значение
Код: plaintext
1.
2.
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
...
Рейтинг: 0 / 0
Русские буквы при отправке почты из JSP
    #33954272
Galogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю так.. у меня все по русски
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
<%@ page contentType="text/html; charset=windows-1251" %>
<META http-equiv="content-type" content="text/html; charset=windows-1251">

<%@ page  import ="com.hp.itsm.ssp.beans.SdClientBean" %>
<%@ page  import ="javax.swing.text.html.HTML"%>
<%@ page  import ="com.sun.mail.imap.protocol.BODY"%>
<%@ page  import ="java.util.Properties"%>
<%@ page  import ="javax.mail.*"%>
<%@ page  import ="javax.mail.internet.*"%>
<%@ page  import ="java.util.*"%>
<%@ page  import ="javax.mail.Authenticator"%>
<%@ page  import ="com.hp.itsm.api.interfaces.*"%>

<%!
     private   void  sendmail( IPerson approver,IApproval approval, IServicecall Sc,SdClientBean bean)
    {

    String p_from = "from@lukoil.ru";
    String p_to = approver.getEmail();
    String p_cc = approver.getEmail();
    String p_bcc = approver.getEmail();
    String p_subject = SdClientBean.filter_html_string("SD: согласование заявки " +Sc.getID());
     Double  deadline =  null ;
    String appdescr =  null ;


    String test="Здравствуйте, " + approver.getFullName().getLastName()+" "+approver.getFullName().getFirstName()+" "+approver.getFullName().getMiddleName();

  
    String p_message = test;


    String p_smtpServer= "10.254.111.111";
    String l_result = "<BR><BR><BR><BR><BR><BR><BR>";
    String ENCODING="koi8-r";

        String l_host = p_smtpServer;

        Properties l_props = System.getProperties();

        l_props.put("mail.smtp.host", l_host);

        Session l_session = Session.getDefaultInstance(l_props,  null );

         try  {
            MimeMessage l_msg =  new  MimeMessage(l_session); 


            l_msg.setFrom( new  InternetAddress(p_from));

            l_msg.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse(p_to, false));

            l_msg.setRecipients(Message.RecipientType.CC,
                    InternetAddress.parse(p_cc, false));

            l_msg.setRecipients(Message.RecipientType.BCC,
                    InternetAddress.parse(p_bcc, false));

            l_msg.setSubject(p_subject, ENCODING); // Тема

            MimeBodyPart l_mbp =  new  MimeBodyPart();

            l_mbp.setText(p_message, ENCODING);

            Multipart l_mp =  new  MimeMultipart();
            l_mp.addBodyPart(l_mbp);

            l_msg.setContent(l_mp);

            l_msg.setSentDate( new  Date());

            Transport.send(l_msg);
        }  catch  (java.lang.Exception e) {
            e.printStackTrace();  
        }
    }

 %>



...
Рейтинг: 0 / 0
Русские буквы при отправке почты из JSP
    #33954522
carper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет, очень может быть, что я им и воспользуюсь, но есть НО:

В принципе, я уже имел свой рабочий самописный класс для отправки почты (разумеется, там нет проблем с кодировками и, вообще, напрямую работает с SMTP), но мне захотелось вместо самодельного велосипеда (который неохота поддерживать, да и гораздо меньше уверенности в стабильной работе, ведь я его не гонял под всеми системами, как, надеюсь, делает мировое сообщество :) ), использовать стандартное решение, да еще такое элегантное, с точки зрения взаимодействия с web-дизайнером, как использование нескольких очевидных тэгов.

Никто не мешает мне обернуть мой, или, теперь возможно еще и Ваш, класс в набор тэгов, но хотелось бы стандарта - программист должен быть ленивым. :)

Вот я и нарыл, вроде бы совсем не экзотическую tlb, с весьма известного проекта. :(

Меня озадачила такая вещь, как наличие тэга, который принципиально не работает.
Вы, наверное, обратили внимание, что я даже не стал просить объяснений как выставить кириллицу, меня бы вполне успокоило просто объяснение, что этот тэг я использую не правильно, а надо так-то, но, например, для русского это все равно не поможет. :)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Русские буквы при отправке почты из JSP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]