zoukankan      html  css  js  c++  java
  • java mail

    1.须要的jar :mail.jar,activation.jar

    2.QQ邮箱设置:设置 -帐户-开启服务:

    3.注意点: 若用QQ邮箱,有发送次数限制的,发了一次后,就停了。建议用企业邮箱。

    4.javamaildemo点击打开链接

    5.相关代码:server验证与处理代码

    package com.jack.mail;
    
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.Message;
    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;
    
    public class MailVConstructor {
    	private Properties props = null;
    	private Authenticator authenticator=null; 
    	private Session session = null;
    	private MimeMessage message = null;
    	public  Properties createProperties(String host ){
    		Properties p = System.getProperties();;
    		p.put("mail.smtp.localhost", "localhost");
    		p.put("mail.smtp.auth", "true");/*打开验证*/
    		p.put("mail.smtp.host", host);
    		return p;
    	}
    	 
    	public Authenticator crateAuthenticator(String from ,String passWord){
    		Authenticator authenticator = new MailAuthenticator(from, passWord);
    		return authenticator;
    	}
    	 
    	public Session createSession(Properties props,Authenticator authenticator){
    		Session session = Session.getDefaultInstance(props, authenticator);
    		return session;
    	}
    	
    	public MimeMessage createMessage(Session session){
    		MimeMessage message = new MimeMessage(session);
    		return message;
    	}
    	
    	
    	/**
    	 * 
    	 * @param host 发送邮件的server
    	 * @param from 发送邮件的地址 ,如 :xxxxxxxx@qq.com
    	 * @param pwd  发送邮件的(用户)password   *************
    	 * @param to   接收邮件的地址
    	 * @param subject 邮件的标题
    	 * @param text 邮件的内容
    	 */
      
    	public void sendMail(String host,String from,String pwd,String to,String subject,String text){
    		props= createProperties(host);
    		authenticator = crateAuthenticator(from,pwd);
    		session = createSession(props,authenticator);
    		message = createMessage(session);
    		try {
    			message.setFrom(new InternetAddress(from));
    			message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));	
    			message.setSubject(subject);/*邮件主题*/
    			message.setText(text);/*邮件内容*/
    			// 发送message
    			Transport.send(message);
    			System.out.println("已成功发送给 :"+to);
    		} catch (AddressException e) {
    			e.printStackTrace();
    		} catch (MessagingException e) {
    			e.printStackTrace();
    		}
    
    	}
    }
    

    package com.jack.mail;
    
    import javax.mail.Authenticator;
    import javax.mail.PasswordAuthentication;
    
    public class MailAuthenticator extends Authenticator {
    	String authenName; // username
    	String authenPass; // password
    
    	public MailAuthenticator(String authenName, String authenPass) {
    		super();
    		this.authenName = authenName;
    		this.authenPass = authenPass;
    	}
    
    	/* 若server须要身份认证,Sission会自己主动调用这种方法 */
    	public PasswordAuthentication getPasswordAuthentication() {
    		return new PasswordAuthentication(authenName, authenPass);
    	}
    }
    
    測试类

    package com.jack.mail;
    
    public class TestMail {
    	public static void main(String args[]) {
    		String subject = "測试标题";
    		String text = "邮件内容";
    		MailVConstructor mc = new MailVConstructor();
    		mc.sendMail("smtp.exmail.qq.com", "jacklei2@baletu.com", "leixuan1225", "15618222119@qq.com", subject, text);
    	}
    }
    
    结果:


  • 相关阅读:
    京东RPA:以企业数字化转型为驱动的机器人流程自动化解决方案专家
    运维大规模ES集群的思考和实践
    潘建伟团队再登Nature:建成全球首个集成量子通信网,全长4600公里
    数智化浪潮之中,传统企业如何抓住转型机遇?
    “持证”就能上岗 京东绿色内推招聘通道开启
    IoT爆发前夕,企业架构要面对哪些变革?
    如何使用ClickHouse实现时序数据管理和挖掘?
    图灵测试已过时,AI 需要新基准测试;别了Flash,Adobe播放器正式停运
    送你一份迷你书,全面了解如何做好大促技术备战
    Django 动态修改库名
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/3824903.html
Copyright © 2011-2022 走看看