【Java】使用smtp和pop3协议,实现邮件收发

使用到的包: javax.mail-1.5.1.jar

  • 发邮件的时候
    - 向运维: 维护服务器linux
    - 索要:
    - smtp服务器地址, smtp.163.com
    - 发送邮件的端口号: 默认25
    - 发件人的账号和密码

邮件发送封装库代码

import java.util.Properties;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendJEmail {
    /*
    * 拷贝代码直接将下面四个属性改成自己的就可以了
    * */
    static final String smtphost = "smtp.163.com";  // 发送邮件的服务商
    static final String from = ""; 				// 邮件发送人的邮件地址
    static final String username = "";  	//发件人的邮件帐户
    static final String password = "";   					//发件人的邮件密码
    
    public static boolean sendMail(String email, String emailMsg) {
        String to = email; 										// 邮件接收人的邮件地址
        
        //定义Properties对象,设置环境信息
        Properties props = System.getProperties();

        //设置邮件服务器的地址
        props.setProperty("mail.smtp.host", smtphost); // 指定的smtp服务器
        props.setProperty("mail.smtp.auth", "true");
        props.setProperty("mail.transport.protocol", "smtp");//设置发送邮件使用的协议
        //创建Session对象,session对象表示整个邮件的环境信息
        Session session = Session.getInstance(props);
        //设置输出调试信息
        session.setDebug(true);
        try {
            //Message的实例对象表示一封电子邮件
            MimeMessage message = new MimeMessage(session);
            //设置发件人的地址
            message.setFrom(new InternetAddress(from));
            //设置主题
            message.setSubject("用户激活");
            //设置邮件的文本内容
            //message.setText("Welcome to JavaMail World!");
            message.setContent((emailMsg),"text/html;charset=utf-8");

            //设置附件
            //message.setDataHandler(dh);

            //从session的环境中获取发送邮件的对象
            Transport transport=session.getTransport();
            //连接邮件服务器
            transport.connect(smtphost,25, username, password);
            //设置收件人地址,并发送消息
            transport.sendMessage(message,new Address[]{new InternetAddress(to)});
            transport.close();
            return true;
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        }
    }
}

以上代码实现后, 直接在service层, 在注册成功之后,调用发送邮件认证类

String link = "http://localhost:8080/BookStore1_war_exploded/active?activeCode=" + user.getActiveCode();
String html = "<a href="+ link +">这里填写激活账号的提示语句</a>";
SendJEmail.sendMail(user.getEmail(), html);
  • 0
    点赞
  • 1
    评论
  • 5
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:护眼 设计师:闪电赇 返回首页

打赏作者

自学IT的攻城狮

你的鼓励是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值