使用java实现基本的邮件发送

一、java开发邮件发送文本内容

开发所需jar包:

<dependency>
	<groupId>javax.mail</groupId>
	<artifactId>mail</artifactId>
	<version>1.4.5</version>
</dependency>

发送邮件java代码:

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 MailUtils {
	private static String from = "XXXXXXXXXX@163.com";// 用于给用户发送邮件的邮箱
	private static String password = "*******"; // 邮箱的密码
	private static String host = "smtp.163.com";// 发送邮件的服务器地址
	public static void sendMail(String to, String title, String content) {
		try {
			Properties prop = new Properties();
			prop.setProperty("mail.host", host);
			prop.setProperty("mail.transport.protocol", "smtp");
			prop.setProperty("mail.smtp.auth", "true");
			Session session = Session.getInstance(prop);
			session.setDebug(true);
			Transport ts = session.getTransport();
			ts.connect(host, from, password);
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress(from));
			message.setRecipient(Message.RecipientType.TO, new InternetAddress(
					to));
			message.setSubject(title);
			message.setContent(content, "text/html;charset=UTF-8");
			message.saveChanges();
			ts.sendMessage(message, message.getAllRecipients());
			ts.close();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	public static void main(String[] args) {
		// 参数为接收邮件的邮箱地址和邮件主题和内容
		String nowDate = new Date().toString();
		sendMail("XXXXXXXXX@163.com", "java实现邮件开发", "利用改方法可以实现邮件发送!!" + nowDate);
	}
}

发送结果如下:
这里写图片描述
二、java开发带有附件的邮件发送
所需jar文件:

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-email</artifactId>
	<version>1.4</version>
</dependency>

Java代码:

public class MailUtils {
	private static String from = "XXXXXXXXXX@163.com";// 用于给用户发送邮件的邮箱
	private static String password = "*******"; // 邮箱的密码
	private static String host = "smtp.163.com";// 发送邮件的服务器地址
	private static int port = 25;
    public static void sendAttachmentMail(String to, String title, String content, String path) throws Exception {
		try {
			MultiPartEmail mail = new MultiPartEmail();
			// 设置端口
			mail.setSmtpPort(port);
			// 设置邮件服务器地址
			mail.setHostName(host);
			// 设置密码验证
			mail.setAuthentication(from, password);
			// 邮件发送者
			mail.setFrom(from);
			// 邮件接收者
			mail.addTo(to);
			// 邮件编码
			mail.setCharset("UTF-8");
			// 邮件主题
			mail.setSubject(title);
			//邮件内容
			mail.setMsg(content);
			// 创建附件
			EmailAttachment attachment = new EmailAttachment();
			attachment.setPath(path);
			attachment.setDisposition(EmailAttachment.ATTACHMENT);
			mail.attach(attachment);
			// 设置邮件发送时间
			mail.setSentDate(new Date());
			// 发送邮件
			mail.send();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	public static void main(String[] args) throws Exception {
		sendAttachmentMail("XXXXXXXXXX@163.com", "带有附件的邮件", "这是一封带有附件的邮件!!","test.jpg");
	}
}


发送结果如下:
这里写图片描述
关键配置如下:
使用java实现邮件发送必须进行如下设置:
1、必须网页登录邮箱打开pop3和smtp服务
这里写图片描述
2、邮箱的登录密码为设置的第三方登录的授权码,而不是在网页登录邮箱时的密码(其他邮箱设置类似)
这里写图片描述

各邮箱服务器地址:(没有的可自行百度)

163免费邮箱的邮件服务器地址
接收邮件服务器:       pop.163.com。
发送邮件服务器(SMTP): smtp.163.com

126免费邮箱的邮件服务器地址
接收邮件服务器:  pop.126.com  
发送邮件服务器(SMTP): smtp.126.com

sina免费邮箱的邮件服务器地址为:
接收邮件服务器:pop.sina.com.cn 或:pop3.sina.com.cn
发送邮件服务器(SMTP):smtp.sina.com.cn

sohu闪电邮邮件服务器地址
接收邮件服务器:pop3.sohu.com
发送邮件服务器(SMTP):smtp.sohu.com

QQ邮箱
接收邮件服务器:pop.qq.com     
发送邮件服务器(SMTP):smtp.qq.com  
  
139邮箱客户端接收与发送服务器地
接收邮件服务器:     pop.139.com
发送邮件服务器(SMTP):smtp.139.com

注:经测试发现,在测试时,尽量保证每次发送邮件的内容不要相同,否则会出现发送失败情况,个人见解如此,当然也有可能是别的原因。若有别的见解,欢迎沟通。
此处设置为加上发送邮件的时间。
这里写图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值