请问各位大侠,我在本类里执行发送邮件命令,对方接到的邮件不是乱码。
然而我把类配到application.xml文件里进行定时发送时就出现了正文乱码,标题显示无标题。谁能帮忙解决下,谢谢!!!

解决方案 »

  1.   

    这是application.xml里的配置
    <bean id="bb" class="com.netvia21.d2s2.timemail.B" >
        </bean>
      <!-- 定义调用对象和调用对象的方法 -->
            <bean id="projobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <property name="targetObject">
                    <ref bean="bb"/>
                </property>
                <property name="targetMethod">
                    <value>timeSendM</value>
                </property>
            </bean>
        <!-- 定义触发时间 -->
        
        <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
         <!-- see the example of method invoking job above -->
         <property name="jobDetail" ref="projobtask" />
         <!-- 10 seconds -->
         <property name="startDelay" value="10000" />
         <!-- repeat every 50 seconds -->
         <property name="repeatInterval" value="50000" />
    </bean>
        
            <bean id="timecardSendMail" class="org.springframework.scheduling.quartz.CronTriggerBean">
                <property name="jobDetail">
                    <ref bean="projobtask"/>
                </property>
                <!-- cron表达式 -->
                <property name="cronExpression">
                    <value>0 0 6 * * ?"</value>
                </property>
            </bean>
           
         <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
           <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">            <property name="triggers">
                    <list>
                    <ref bean="simpleTrigger"/>
                        <ref bean="timecardSendMail"/>
                        <!-- <ref bean="doTime"/> -->
                    </list>
                </property>
            </bean>这是java类的方法
    public class B {   


    public void timeSendM() 
    {
            B send=new B();   
            try {
    send.send163ByMutil();
    } catch (MessagingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }   
    }

        public  void send163ByMutil() throws MessagingException {   
            JavaMailSenderImpl javaMail = new JavaMailSenderImpl();   
            javaMail.setHost("smtp.163.com");   
            javaMail.setPassword("psw");   
            javaMail.setUsername("username");   
            Properties prop = new Properties();   
            prop.setProperty("mail.smtp.auth", "true");        
            javaMail.setJavaMailProperties(prop);   
            MimeMessage message = javaMail.createMimeMessage();   
            MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK");   
            messageHelp.setFrom("[email protected]");   
            messageHelp.setTo("[email protected]");   
            messageHelp.setSubject("测试");   
            // messageHelp   
            String body = "你在他乡还好么";   
            messageHelp.setText(body, true);   
    //        messageHelp.addInline("a", new File("E:/xiezi.jpg"));   
    //        messageHelp.addInline("b", new File("E:/logo.png"));           
    //        File file=new File("E:/Favorites中文文件.rar");        
    //        try {   
    //            messageHelp.addAttachment(MimeUtility.encodeWord(file.getName()), file);   
    //        } catch (UnsupportedEncodingException e) {             
    //            e.printStackTrace();   
    //        }   
            javaMail.send(message);   
            System.out.println("==========ok==");
        }   在类main里面测试收到的邮件不是乱码,一启动服务器,定时发送就是乱码
      

  2.   

    服务器的编码与你写的编码有冲突!我们公司去年让我做javamail,是给一个
    台湾老板做的,他们用的是繁体,我做了一个Javamail发邮件,发到163的邮
    箱不是乱码,但到qq邮箱就变成了乱码,到后来我写了一个方法,把常用的邮箱
    设置一下编码,设置一个常用编码,测试测试就行了!那时乱码这一块我整
    了3个月,以前从来没用繁体过!在网上看到一点信息就照着修改,一个一个的试的,
    呵呵,上网自己搜搜,应该简体的还是比较好修改的!!