欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java发送邮件

程序员文章站 2022-06-14 13:03:38
...

■java代码

    (类子中的代码,邮箱与密码是硬编码形式写入代码的,正常编写代码不要使用硬编码。)

关于授权码,很久之前(2009年)的时候还没有,直接使用密码就可以。

现在要使用授权码

import java.util.Date;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;



public class MailSend {
	private String EMail;
	private String id;
	private String pass;
	public MailSend(String EMail,String id,String pass){
		this.EMail = EMail;
		this.id = id;
		this.pass = pass;
		
	}
	
	public boolean sendEmail(){
		String from="XXXX@XXX.com";
		String to = EMail;
		
		String text="您已成功注册,可以使用该平台进行留言,您的帐号是:"+id+
					"密码是:"+pass+"\n"+"希望您保存该邮件,以便忘记密码时查找";
		
		String mailserver = "smtp.sina.com";
		String name = from;
		// 授权码
		String pass ="XXXXXX";
		Auth auth = new Auth(name,pass);
		
		
		//0
		Properties props = new Properties();
		props.put("mail.smtp.host", mailserver);
		props.put("mail.smtp.auth", "true");
		//1
		Session mailSession = Session.getInstance(props,auth);
		try{
			Message msg = new MimeMessage(mailSession);
			msg.setFrom(new InternetAddress(from));
			msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
			msg.setSentDate(new Date());
			msg.setSubject("留言板注册成功");
			msg.setText(text);		
			System.out.println("before send");
			Transport.send(msg);
			
			System.out.println("发送成功");
			
		}catch(Exception e){
			System.out.println("发送失败");
			e.printStackTrace();
			
		}
		
		
		return true;
	}
	
	

}

■收到邮件的效果

java发送邮件

 

■邮件设置(设置里面开启POP/IMAP/SMTP)

   开启之后,邮件方面会提供一个授权码,在代码中使用

java发送邮件

■使用的jar

maven的pom中定义如下,就可以引入jar包

        <dependency>

            <groupId>javax.mail</groupId>

            <artifactId>mail</artifactId>

            <version>1.4</version>

        </dependency>

■使用的jar的下载地址(提供给不方便使用maven导入jar包的人)

https://download.csdn.net/download/sxzlc/12142594