Java实现发送邮件

本文介绍了如何使用Java实现发送邮件。首先需要在QQ邮箱中开启POP3和IMAP服务并获取授权码,接着导入mail.jar包,最后编写并运行发送邮件的代码。
摘要由CSDN通过智能技术生成

第一步:

进入QQ邮箱->账号设置:开启POP3和IMAP服务,开启之后会给你一个授权码,这个要记下来。

 

第二步:

导包,导入mail.jar包。

下载连接:https://javaee.github.io/javamail/#Download_JavaMail_Release

 下载这个javax.mail.jar。下载完成之后导入项目。

 

第三步:

敲代码


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JOptionPane;

import com.sun.mail.util.MailSSLSocketFactory;

public class SendEmail {
	
	//邮箱服务器主机名
	//QQ邮箱的SMTP服务器地址为:smtp.qq.com
	private static String myEmailSMTPHost="smtp.qq.com";
	//发件人邮箱
	private static String myEmailAccount="@qq.com";
	
	/**发件人邮箱密码,这里是开通SMTP时获取的授权码
	 * (因为要开启POP3和IMAP两个客户端,所以会有两个授权码,随便哪一个都行),不是邮箱登陆密码。
	 */
	
	private static String myPassword="授权码";
	
	//发送邮件
	
	
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated constructor stub
		//验证码
		String verifyCode="";
		
		//收件人邮箱,并不局限于QQ邮箱
		String toEmailAddress="收件人邮箱";
		
		//邮件主题
		String emailTitle="邮箱标题";
		
		//邮件内容
		String emailContent="邮箱内容";
		
		//发送邮件
	
		sendEmail(toEmailAddress,emailTitle,emailContent);
	
		
	}
	
	public static void sendEmail(String toEmailAddress,String emailTitle,
			String emailContent) throws Exception{
		
		Properties props= new Properties();
		//开启debug调试
		props.setProperty("mail.debug", "true");
		
		//发送服务器需要身份验证
		props.setProperty("mail.smtp.auth", "true");
		
		//端口号465/587
		props.put("mail.smtp.port", 465);
		
		//设置邮件服务器主机名
		props.setProperty("mail.smtp.host", myEmailSMTPHost);
		
		//发送邮件协议名称
		props.setProperty("mail.transport.protocol", "smtp");
		
		//SSL认证,QQ邮箱是通过SSL加密的,所以需要开启才能使用
		MailSSLSocketFactory sf=new MailSSLSocketFactory();
		
		sf.setTrustAllHosts(true);
		
		//设置是否适用SSL安全连接
		props.put("mail.smtp.ssl.enable", "true");
		
		props.put("mail.smtp.ssl.socketFactory", sf);
		
		//创建会话
		Session session=Session.getInstance(props);
		
		//获取邮箱对象
		//发送的消息根据自己需求设计
		Message msg=new MimeMessage(session);
		
		//设置邮件标题
		msg.setSubject(emailTitle);
		
		//设置邮件内容
		//使用StringBuilder,因为StringBuilder比String加载速度快,而且线程安全性也不错
		StringBuilder builder=new StringBuilder();
		
		//写入邮件内容
		builder.append("\n"+emailContent);

                // 写入我的官网

		builder.append("\n官网:" + "https://www.baidu.com");

		
		//定义要输出的日期字符串的格式
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd hh-mm-ss");
		
		//在内容后加入发送邮件的日期时间
		builder.append("\n"+sdf.format(new Date()));
		
		//设置显示邮件发送的时间
		msg.setSentDate(new Date());
		
		//设置邮件内容
		msg.setText(builder.toString());
		
		//设置发件人邮箱
		//InternetAddress 的三个参数分别是:发件人邮箱,显示昵称,昵称的字符编码
		msg.setFrom(new InternetAddress(myEmailAccount, "昵称", "utf-8"));
		
		//得到邮差对象
		Transport transport=session.getTransport();
		
		//连接自己的邮箱账户
		//connect 三个参数分别为:服务器地址,邮箱,开启SMTP时的授权码
		transport.connect(myEmailSMTPHost, myEmailAccount, myPassword);
		
		//发送邮件
		transport.sendMessage(msg, new Address[] {new InternetAddress(toEmailAddress)});
		
		transport.close();
		
	}

}

 代码完善之后就可以运行了,如果有什么问题,欢迎在下方评论留言。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值