Java中真实邮件发送

Java中为了完成验证操作,需要给邮箱中发送验证码操作

本地以新浪邮箱为例,给QQ邮箱发送一封带附件的验证邮件测试信息

首先需要登录新浪邮箱,打开服务器设置:全部选择开启状态

/**
	 * 发送带附件的邮件
	 * @param from 发件人
	 * @param to 收件人
	 * @param host SMTP服务器地址
	 * @param title 邮件主题
	 * @param content 邮件内容
	 * @param password 发件人邮箱登录密码
	 * @param filePath 附件文件本地路径+名称
	 */
	public void sendMultipartMail(String from,String to,String host,String title,String content,String filePath,String password){
		
		final String userName = from;
		final String pwd = password;
		
		try {
			
			//1、创建配置信息对象
			Properties props = new Properties();
			props.setProperty("mail.smtp.host", host);
			props.put("mail.smtp.auth", "true");//配置邮箱服务器的认证
			
			//2、获取连接邮箱服务器的session对象,设置发件人的邮箱账号和密码
			Session session = Session.getDefaultInstance(props, new Authenticator() {
				@Override
				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(userName, pwd);
				}
				
			});
			
			//3、封装邮件信息对象
			MimeMessage mess = new MimeMessage(session);
			
			//设置发件人地址
			mess.setFrom(new InternetAddress(from));
			//设置收件人地址,同时发多人
			mess.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to));
			//设置主题
			mess.setSubject(title);
			//设置邮件内容,发送文本邮件
			//mess.setText("恭喜您注册成功");
			//设置邮件内容,发送HTML格式的邮件
			mess.setContent(content, "text/html;charset=utf-8");
			
			// 创建消息部分
	         BodyPart messageBodyPart = new MimeBodyPart();
	 
	         // 消息
	         messageBodyPart.setText("JDBC学习笔记");
	        
	         // 创建多重消息
	         Multipart multipart = new MimeMultipart();
	 
	         // 设置文本消息部分
	         multipart.addBodyPart(messageBodyPart);
	 
	         // 附件部分
	         messageBodyPart = new MimeBodyPart();
	        // String filename = "E:\\JDBC学习笔记.docx";
	         DataSource source = new FileDataSource(filePath);
	         
	         messageBodyPart.setDataHandler(new DataHandler(source));
	        // messageBodyPart.setFileName(filename);
	         messageBodyPart.setFileName(MimeUtility.encodeWord(filePath));
	         
	         multipart.addBodyPart(messageBodyPart);
	 
	         // 发送完整消息
	         mess.setContent(multipart );
			
			//发送邮件
			Transport.send(mess);
			
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException("邮件发送异常,发送失败!");
		}
		
	}
	
	
	public static void main(String[] args) {
		
		/*MailSendUtil mail = new MailSendUtil();
		mail.sendMail();*/
		
		String from = "139********@sina.cn";
		String to = "********@qq.com";
		String pwd = "**********";
		String title = "测试";
		String content= "这是一份测试邮件";
		String host = "smtp.sina.com";
		String filePath = "E:\\01.jpg";
		
		MailSendUtil mail = new MailSendUtil();
		//mail.sendHtmlMail(from, to, host, title, content, pwd);
		mail.sendMultipartMail(from, to, host, title, content,filePath, pwd);
		
		
	}

猜你喜欢

转载自blog.csdn.net/qq_34377273/article/details/82056605