javamail truts-做后台发送邮件,用main测试好试,单合到项目中Action里就没用,也没报错

问题描述

做后台发送邮件,用main测试好试,单合到项目中Action里就没用,也没报错

import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

private static Properties props = null;

static {
    props = new Properties();
    props.setProperty("mail.transport.protocol", "smtp");
    props.setProperty("mail.smtp.host", "smtp.sina.com");
    props.setProperty("mail.smtp.port", "25");
    props.setProperty("mail.smtp.auth", "true");
    props.setProperty("mail.debug","false");
} 

    if ("email".equals(type)) {
        try {
            //根据eamil查询是注册过
            clientUser = clientUserDao.getByEmail(phone);
        } catch (SQLException e) {
            e.printStackTrace();
            this.printResult(ResultCode.CODE_600);
            return ActionSupport.SUCCESS;
        }
        //如果查到clientUser,就发送邮件
        if(clientUser!=null){

            String findPwdLink = generateResetPwdLink(clientUser);
            clientUser.setFindPwdLink(findPwdLink);
            try {
                //把地址存到clientUser中
                clientUserDao.update(clientUser);
            } catch (SQLException e) {
                e.printStackTrace();
                this.printResult(ResultCode.CODE_600);
                return ActionSupport.SUCCESS;
            }
            // 创建Session实例对象
            Session session = Session.getDefaultInstance(props); 

            // 创建MimeMessage实例对象
            MimeMessage message = new MimeMessage(session);
            // 设置发件人
            try {
                message.setFrom(new InternetAddress("wuhao920508@sina.com"));

            // 设置邮件主题
            message.setSubject("找回密码");
            // 设置收件人
            message.setRecipient(RecipientType.TO, new InternetAddress(phone));
            // 设置发送时间
            message.setSentDate(new Date());
            // 设置纯文本内容为邮件正文
            message.setText("要使用新的密码, 请使用以下链接启用密码:<br/><a href='" + findPwdLink
                    + "'>点击重新设置密码</a>");
            // 保存并生成最终的邮件内容
            message.saveChanges(); 

            // 获得Transport实例对象
            Transport transport = session.getTransport();
            // 打开连接
            transport.connect("wuhao920508@sina.com", "******");
            // 将message对象传递给transport对象,将邮件发送出去
            transport.sendMessage(message, message.getAllRecipients());
            // 关闭连接
            transport.close();
            } catch (AddressException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (MessagingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    不知道为什么,用debug一步一步调也没有错误,也运行到最后,就是不发邮件

解决方案

求教啊,各位大神,我也下载activation.jar和mail.jar都放lib下了,但是感觉没有到这两个jar

解决方案二:

findPwdLink这是我用MD5加密的地址信息

解决方案三:

我之前也遇到这种情况,如果你是发送成功,但收不到,可能是收件邮箱把你发送的邮件当垃圾邮件处理未显示出来,你到垃圾邮件那找下看有没有。

时间: 2024-09-13 10:37:56

javamail truts-做后台发送邮件,用main测试好试,单合到项目中Action里就没用,也没报错的相关文章

代码-Tomcat服务器打开的index.jsp页面一片空白,后台没报错

问题描述 Tomcat服务器打开的index.jsp页面一片空白,后台没报错 连http://localhost:8080/这个小猫页面也显示不出来,百度了很多都没找到解决办法,刚建立web项目什么都没有的时候起前端是能打开的,虽然这时候http://localhost:8080/也是打不开,但是写了代码就打不开了,就一个index.jsp就是一个登录页面而已,想不出代码哪里会有问题.我觉得这里应该就算代码有问题也是能打开的吧,只是不能登录而已(是用shh框架做的项目,现在只做了登录这里而已就不

hadoop2.2启动没报错,测试wordcount就出问题了

问题描述 hadoopjar~/hadoop2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarwordcount/input/output/wordcount14/09/2919:30:50WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicable14/09

ab压力测试报错: apr_socket_recv: Connection reset by peer (104)

使用ab对网站进行压力测试,开始设置并发500,可以正常使用,当设置并发为1000,则报错: apr_socket_recv: Connection reset by peer (104) 改服务端apache的maxclients参数,调大最大打开文件数,都不解决问题,最后才发现是因为ab的源码对ab的并发有限制,修改源码重新编译apache: 修改源码support目录下的ab.c文件,大概在1369行,修改为: return;} else {//apr_err("apr_socket_re

我想在C#下利用GP工具调用arcgis中toolbox里的一些功能,应该怎么做呢

问题描述 我想在C#下利用GP工具调用arcgis中toolbox里的一些功能,应该怎么做呢 我想在C#下利用GP工具调用arcgis中toolbox里的一些功能,但是刚接触这个,具体编译环境怎么设置,如何调用,有谁知道请指导一下,不胜感激..... 解决方案 ArcGIS Engine中调用GP的两种方法 http://bbs.csdn.net/topics/390978045 解决方案二: ArcGIS Engine中调用GP的两种方法 http://bbs.csdn.net/topics/

整理几个android后台发送邮件的方法

android后台发送Email(不借助Intent) Android的SDK使得它很容易从一个应用程序发送电子邮件,但只能通过Intent的方法,就是通过内置的邮件应用程序.这能满足大多数的需求,但如果你想在后台发送,就不行了.在这篇文章中,我将告诉你怎样在没有用户干预的情况下,在后台发送一封电子邮件. 开始之前需要先下载一个特殊版本的JavaMail API,这是专门为Android编写的. http://code.google.com/p/javamail-android/download

Android 后台发送邮件到指定邮箱

这个主要是搜集app报错信息之后将信息上传到邮箱,请不要用做其他非法用途.代码请参考: MailUtils.Java public class MailUtils { /** * 创建一封只包含文本的简单邮件 * * @param session 和服务器交互的会话 * @param sendMail 发件人邮箱 * @param receiveMail 收件人邮箱 * @return * @throws Exception */ public static MimeMessage create

Android 后台发送邮件示例 (收集应用异常信息+Demo代码)

今天介绍个更简单的方法,我们把异常信息收集后,通过后台发送邮件方法,把相关异常信息发送到我们指定的邮箱里面   上一次说了如何收集我们已经发布的应用程序的错误信息,方便我们调试完善程序.上次说的收集方法主要是把收集的信息通过Http的post请求把相 关的异常信息变成请求参数发送到服务器.这个对做过web开发的人来说,服务端处理是很简单.不过对很多没做个web的人来说却是麻烦事.今天介绍个更简 单的方法,我们把异常信息收集后,通过后台发送邮件方法,把相关异常信息发送到我们指定的邮箱里面. 这篇文

使用JavaMail创建邮件和发送邮件

欢迎加入QQ群交流:1群已满,请加2群466355109,技术不全没关系,只要有交流的心就尽管来吧 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄送给另一个收件人,收件人可以看到邮件

javamail发送邮件报错,求指教。

问题描述 javamail发送邮件报错,求指教. 前段时间写了一个简单的javamail发送邮件的功能,测试功能正常后就没管了.今天再次测试的时候,发现居然报错了.求大神指点指点. package com.temp.test; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Properties; import javax.mail.Message; import javax