zoukankan      html  css  js  c++  java
  • 使用Javamail实现邮件发送功能

    @

    相关的包

    1. activation.jar
    2. javax.mail.jar
      mail包建议使用高版本写的包,否则可能会发空白邮箱(亲身经历╯︿╰)
      Javamail的GitHub项目地址:https://github.com/javaee/javamail/releases
      这样就可以用高版本的包了(~ ̄▽ ̄)~

    若使用QQ邮箱或非自建邮箱则开启SMTP服务

    QQ邮箱在设置-账号,中可开启

    开启后的
    接收邮件服务器:imap.qq.com,使用SSL,端口号993
    发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587
    账户名:QQ邮箱账户名(如果是VIP帐号或Foxmail帐号,账户名需要填写完整的邮件地址)

    开启后可获取授权码,授权码可作为发送方邮箱的密码

    编写工具类

    /**
     * 邮件发送工具类
     * 注:需使用高版本些的javamail,否则可能出现邮件标题和内容为空
     *
     */
    public class MailUitl {
    	/**
    	 * 发送邮件的方法
    	 * @param to	:收件人
    	 * @param code	:激活码
    	 */
    	public static void sendMail(String to,String code){
    		/**
    		 * 1.获得一个Session对象.
    		 * 2.创建一个代表邮件的对象Message.
    		 * 3.发送邮件Transport
    		 */
    		// 1.获得连接对象
    		Properties props = new Properties();
    		//这里使用了QQ邮箱
    		props.setProperty("mail.host", "smtp.qq.com");
    		//设置端口,这里可以不设置,如是用自己的邮箱服务器则需设置
    		//props.setProperty("mail.smtp.port", "465");
    		props.put("mail.smtp.auth", "true");
    		Session session = Session.getInstance(props, new Authenticator() {
    
    			@Override
    			protected PasswordAuthentication getPasswordAuthentication() {
    			//这里xxxxxxxx是qq邮箱的授权码
    				return new PasswordAuthentication("test@qq.com", "xxxxxxxxxxxx");
    			}
    		});
    		// 2.创建邮件对象:
    		Message message = new MimeMessage(session);
    		// 设置发件人:
    		try {
    			message.setFrom(new InternetAddress("test1@qq.com"));
    			// 设置收件人:
    			message.addRecipient(RecipientType.TO, new InternetAddress(to));
    			// 设置标题
    			message.setSubject("来自xxxxx的激活邮件");
    			// 设置邮件正文:
    			message.setContent("<h1>xxxxxx激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://127.0.0.1:8080/manxcang/user_active.action?code="+code+"'>http://127.0.0.1:8080/manxcang/user_active.action?code="+code+"</a></h3>", "text/html;charset=UTF-8");
    			// 3.发送邮件:
    			Transport.send(message);
    		} catch (AddressException e) {
    			e.printStackTrace();
    		} catch (MessagingException e) {
    			e.printStackTrace();
    		}
    		
    	}
    	
    	//测试
    	public static void main(String[] args) {
    		sendMail("test2@foxmail.com","11111111111111");
    	}
    }
    

    环境说明

    以上都是在jdk1.8环境下运行有效

  • 相关阅读:
    操作数据库pymysql
    深度学习-目标检测(Fast R-CNN)
    解释--全连接层输入大小固定
    深度学习-目标检测(IOU)
    深度学习-目标检测(SPPNet)
    深度学习-目标检测(R-CNN)
    机器学习-Whitening(白化)
    Win10 将slim加入PYTHONPYTH
    tensorboard 使用
    卷积神经网络--padding
  • 原文地址:https://www.cnblogs.com/flytree/p/11623884.html
Copyright © 2011-2022 走看看