实习日志--定时从数据库查询数据发送邮件

这篇博客记录了作者在大四实习期间实现的一个功能:使用Java Servlet和JDBC连接Oracle数据库,定时查询数据并发送邮件到指定邮箱。文章详细介绍了创建MailAuthenticator和MailOperation类来处理邮件发送,通过测试类确保数据库连接成功,以及实现定时任务和时间判断,以确保在特定时间发送邮件。最后,作者提到了数据库连接关闭的重要性,并表达了对指正和学习的期待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大四实习期写的第一个小功能:要求是能定时查询数据发送到指定邮箱,使用JDBC连接Oracle数据库
————————————————我是一条分界线—————————————————————
创建MailAuthenticator类 用来保存发件人账号和密码

package cn.email;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

/**
 * 发件人账号密码
 * @author bear
 *
 */
public class MailAuthenticator extends  Authenticator{
   
   

    public static String USERNAME = "877083959@qq.com";
    public static String PASSWORD = "yigejiadeshouquanma";

    public MailAuthenticator() {
   
   
    }

    protected PasswordAuthentication getPasswordAuthentication() {
   
   
        return new PasswordAuthentication(USERNAME, PASSWORD);
    }

}

创建MailOperation邮件发送类

package cn.email;

import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;/**
 * 邮件发送操作类
 * 
 * @author bear
 * 
 */
public class MailOperation {
   
   

    /**
     * 发送邮件
     * @param user 发件人邮箱
     * @param password 授权码(注意不是邮箱登录密码)
     * @param host 
     * @param from 发件人
     * @param to 接收者邮箱
     * @param subject 邮件主题
     * @param content 邮件内容
     * @return success 发送成功 failure 发送失败
     * @throws Exception
     */
    public String sendMail(String user, String password, String host,
            String from, String to, String subject, String content)
            throws Exception {
   
   
        if (to != null){
   
   
            Properties props = System.getProperties();
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", "true");
            MailAuthenticator auth = new MailAuthenticator();
            MailAuthenticator.USERNAME = user;
            MailAuthenticator.PASSWORD = password;
            Session session = Session.getInstance(props, auth);
            session.setDebug(true);
            try {
   
   
                MimeMessage message = new MimeMessage(session);
                message.setFrom(new InternetAddress(from));
                if (!to.trim().equals(""))
                    message.addRecipient(Message.RecipientType.TO,
                            new InternetAddress(to.trim()));
                message.setSubject(subject);
                MimeBodyPart mbp1 = new MimeBodyPart(); // 正文
                mbp1.setContent(content, "text/html;charset=utf-8");
                Multipart mp = new MimeMultipart(); // 整个邮件:正文+附件
                mp.addBodyPart(mbp1);
                // mp.addBodyPart(mbp2);
                message.setContent(mp);
                message.setSentDate(new Date());
                message.saveChanges();
                Transport trans = session.getTransport("smtp");
                trans.
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值