java基于javax.mail的邮件发送器,可发送本地图片,可带附件

本文介绍了如何使用Java的javax.mail库创建一个邮件发送器,能够发送包含本地图片和附件的邮件。文章提供了所需jar包的下载链接,并展示了不同类型的邮件测试,包括普通邮件、超文本邮件以及群发带附件的邮件。
摘要由CSDN通过智能技术生成

所需jar包:链接:https://pan.baidu.com/s/1DSI5KuspG80_FaVjtKiwkg 提取码:z67j 

本人学生党,事情发生在做java毕业设计时,当时想着在注册模块中加个验证,但是网上的那些短信验证码发送大多数是要收费的,怎么办呢?于是就把目光投向了免费的邮箱,我先在网上找了一个工具类,测试验证码发送成功。

既然能发送了,就想要搞特殊一点,例如发送成html代码美化一下、加些图片之类的。经测试,那个工具类无法完成,当时就放弃了这个想法,因为在实习,时间不是很充裕。

既然现在有时间了,当然要看一下怎么实现更多的功能,于是又在网上找些代码学习,写出了如下代码:

package com.geecke.tools.mail;

import java.io.Serializable;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message.RecipientType;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

/**
 * 邮件发送器
 * 
 * JavaMail 版本: 1.6.0 
 * JDK 版本: JDK 1.8
 * 
 * @author iu_chang
 * @version 3.2
 *
 */
public class MailTransmitter implements Serializable {
	private static final long serialVersionUID = 1L;
	/** 发件人账号 */
	private String account;
	/** 发件人名称 */
	private String name;
	/** 发件人密码或授权码 */
	private String password;
	/** SMTP服务器地址 */
	private String host;
	/** 邮件编码 */
	private String encoding;

	/**
	 * 创建一个编码为UTF-8的邮件发送器
	 * 
	 * @param account
	 *            用来发送邮件的账号
	 * @param name
	 *            用来发送邮件的账号的名称
	 * @param password
	 *            账号对应的密码<br>
	 *            如果该邮箱服务商规定第三方需要使用授权码,则此处应填写授权码
	 * @param host
	 *            邮箱的smtp服务器地址<br>
	 *            一般格式是smtp.xxx.com,例如网易163的是:smtp.163.com<br>
	 *            <br>
	 *            注:需手动开启POP3/SMTP/IMAP服务
	 */
	public MailTransmitter(String account, String name, String password, String host) {
		this.account = account;
		this.name = name;
		this.password = password;
		this.host = host;
		this.encoding = "UTF-8";
	}

	/**
	 * 创建一个邮件发送器
	 * 
	 * @param account
	 *            用来发送邮件的账号
	 * @param name
	 *            用来发送邮件的账号的名称
	 * @param password
	 *            账号对应的密码<br>
	 *            如果该邮箱服务商规定第三方需要使用授权码,则此处应填写授权码
	 * @param host
	 *            邮箱的smtp
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java实现SMTP邮件发送的示例代码: ```java import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendMail { public static void main(String[] args) { final String username = "your_email@example.com"; // 发件人邮箱账号 final String password = "your_email_password"; // 发件人邮箱密码 final String recipient = "recipient@example.com"; // 收件人邮箱账号 Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.example.com"); // 发件人邮箱SMTP服务地址 props.put("mail.smtp.port", "587"); // 发件人邮箱SMTP服务端口号 Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress(username)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipient)); message.setSubject("Testing Subject"); message.setText("Dear Mail Crawler," + "\n\n No spam to my email, please!"); Transport.send(message); System.out.println("邮件发送成功!"); } catch (MessagingException e) { throw new RuntimeException(e); } } } ``` 请注意,您需要将示例代码中的发件人邮箱账号、密码、收件人邮箱账号、发件人邮箱SMTP服务地址和端口号替换为您自己的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值