java实现邮件群发_利用java实现邮箱群发功能

本文实例为大家分享了java实现邮箱群发的具体代码,供大家参考,具体内容如下

近来无事,在网上看了一些大牛文章,其中看到一篇比较好的,分享给大家!

下面是代码

邮箱实体

import java.io.Serializable;

/**

* 邮件实体类

*/

public class Mail implements Serializable {

/**

* 序列号

*/

private static final long serialVersionUID = -3562218214168975242L;

/**

* 邮件编码s

*/

public static final String ENCODEING = "UTF-8";

/**

* 服务器地址

*/

private String host;

/**

* 服务器端口号

*/

private String portNumber;

/**

* 发件人的邮箱

*/

private String sender;

/**

* 收件人的邮箱

*/

private String receiver;

/**

* 发件人昵称

*/

private String name;

/**

* 账号

*/

private String username;

/**

* 密码

*/

private String password;

/**

* 主题

*/

private String subject;

/**

* 信息(支持HTML)

*/

private String message;

public String getHost() {

return host;

}

public void setHost(String host) {

this.host = host;

}

public String getSender() {

return sender;

}

public String getPortNumber() {

return portNumber;

}

public void setPortNumber(String portNumber) {

this.portNumber = portNumber;

}

public void setSender(String sender) {

this.sender = sender;

}

public String getReceiver() {

return receiver;

}

public void setReceiver(String receiver) {

this.receiver = receiver;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getSubject() {

return subject;

}

public void setSubject(String subject) {

this.subject = subject;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

工具类

import org.apache.commons.mail.EmailException;

import org.apache.commons.mail.HtmlEmail;

public class MailUtil {

public boolean send(Mail mail) {

//发送email对象

HtmlEmail email = new HtmlEmail();

try {

//这里是SMTP发送服务器的名字

email.setHostName(mail.getHost());

//端口号不为空时,用户自定义的端口号为SMTP发送服务器端口号

if (!"".equals(mail.getPortNumber())) {

email.setSSLOnConnect(true);

email.setSslSmtpPort(mail.getPortNumber());

}

//字符编码集的设置

email.setCharset(Mail.ENCODEING);

//收件人的邮箱

email.addTo(mail.getReceiver());

//发送人的邮箱

email.setFrom(mail.getSender(), mail.getName());

// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码

email.setAuthentication(mail.getUsername(), mail.getPassword());

// 要发送的邮件主题

email.setSubject(mail.getSubject());

// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签

email.setMsg(mail.getMessage());

// 发送

email.send();

return true;

} catch (EmailException e) {

e.printStackTrace();

return false;

}

}

}

开始

import java.util.Random;

public class SimpleEmailClient {

public static void main(String[] args) throws InterruptedException {

Mail mail = new Mail();

mail.setHost("smtp.qq.com"); // 设置邮件服务器,如果不用QQ邮箱的,自己找找看相关的

mail.setPortNumber("465"); // 设置邮件服务器端口号,默认25

mail.setSender("xxxx@qq.com"); // 发送人

mail.setName("杨大侠"); // 发送人昵称

mail.setSubject("好吃美味"); //发送主题

mail.setMessage("好吃美味"); //发送内容

mail.setUsername("xxxx@qq.com"); // 登录账号,一般都是和邮箱名一样

mail.setPassword("********"); // QQ邮箱登录第三方客户端时,密码框请输入“授权码”进行验证。其他的密码具体查看邮件服务器的说明

for (int i = 0; i < 1000; i++) {

//Thread.sleep(2000);

int max1 = 99999;

int min1 = 10000;

Random random = new Random();

int f = random.nextInt(max1)%(max1-min1+1) + min1;

int max2 = 9999;

int min2 = 1000;

Random random2 = new Random();

int s = random2.nextInt(max2)%(max2-min2+1) + min2;

String account = "" + f + "" + s + "@qq.com";

mail.setReceiver(account); // 接收人

System.out.println(account);

if (new MailUtil().send(mail)) {

System.out.println("发送成功");

} else {

System.out.println("发送失败");

}

}

}

}

for循环是为了群发

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值