Java实现向邮箱发送验证码

代码全部Copy自此链接

主要就是两个类,一个发送类,一个测试类,本文用来记录我在较新的java web maven项目中运行此代码遇到的错误

1、Servlet中好像不支持实例化一个新的类?
当我按照原文的方法书写时,在servlet中准备实例化SendEmail 类的时候报错,错误原因为找不到路径?(把SendEmail 作为Servlet的内部类也不可以) 因此我将原先SendEmail 类的所有内容以函数的形式插入到了Servlet中却能运行成功,下面为修改后的代码


/**
 * @author FlowerWang
 */
@WebServlet(name = "DynamicCode", value = "/DynamicCode")
public class DynamicCode extends HttpServlet {
   
   

    private final String myEmailAccount = "不告诉你哦~";//发送的邮箱
    private final String myEmailPassword = "去申请你自己的哦~";
    private String myEmailSMTPServer = "smtp.qq.com";
    private String receiveMailAccount;
    private String info;


    public void send() throws Exception {
   
   
        // 1. 创建参数配置, 用于连接邮件服务器的参数配置
        Properties props = new Properties();                    // 参数配置
        props.setProperty("mail.transport.protocol", "smtp");   // 使用的协议(JavaMail规范要求)
        props.setProperty("mail.smtp.host", myEmailSMTPServer);   // 发件人的邮箱的 SMTP 服务器地址
        props.setProperty("mail.smtp.auth", "true");            // 需要请求认证

        final String smtpPort = "465";
        props.setProperty("mail.smtp.port", smtpPort);
        props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.socketFactory.port", smtpPort);

        Session session = Session.getDefaultInstance(props);
        session.setDebug(true);
        // 3. 创建一封邮件
        MimeMessage message = createMessage(session, myEmailAccount, receiveMailAccount, info);

        Transport transport = session.getTransport();
        transport.connect(myEmailAccount, myEmailPassword);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }

    public MimeMessage createMessage(Session session, String sendMail, String receiveMail
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值