java jmail_Java jmail邮件发送与不重复随机码 | 彬菌

版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创!

恰饭广告

发送邮件

MailUtil.java

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 MailUtil {

//发件人地址

public static String senderAddress = "***@163.com";

//收件人地址

public static String recipientAddress = "***@qq.com";

//发件人账户授权 不是密码

public static String senderPassword = "***";

/**

* 获得创建一封邮件的实例对象

* @param session

* @return

* @throws MessagingException

* @throws AddressException

*/

private static MimeMessage getMimeMessage(Session session,String theme,String html) throws Exception{

//创建一封邮件的实例对象

MimeMessage msg = new MimeMessage(session);

//设置发件人地址

msg.setFrom(new InternetAddress(senderAddress));

/**

* 设置收件人地址(可以增加多个收件人、抄送、密送),即下面这一行代码书写多行

* MimeMessage.RecipientType.TO:发送

* MimeMessage.RecipientType.CC:抄送

* MimeMessage.RecipientType.BCC:密送

*/

msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(recipientAddress));

//设置邮件主题

msg.setSubject(theme,"UTF-8");

//设置邮件正文

msg.setContent(html, "text/html;charset=UTF-8");

//设置邮件的发送时间,默认立即发送

msg.setSentDate(new Date());

return msg;

}

public static void SendMail(String theme,String html) throws Exception{

//1、连接邮件服务器的参数配置

Properties props = new Properties();

//设置用户的认证方式

props.setProperty("mail.smtp.auth", "true");

//设置传输协议

props.setProperty("mail.transport.protocol", "smtp");

//设置发件人的SMTP服务器地址

props.setProperty("mail.smtp.host", "smtp.163.com");

//2、创建定义整个应用程序所需的环境信息的 Session 对象

Session session = Session.getInstance(props);

//设置调试信息在控制台打印出来

session.setDebug(true);

//3、创建邮件的实例对象

Message msg = getMimeMessage(session,theme,html);

//4、根据session对象获取邮件传输对象Transport

Transport transport = session.getTransport();

//设置发件人的账户名和密码

transport.connect(senderAddress, senderPassword);

//发送邮件,并发送到所有收件人地址,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人

transport.sendMessage(msg,msg.getAllRecipients());

//如果只想发送给指定的人,可以如下写法

//transport.sendMessage(msg, new Address[]{new InternetAddress("xxx@qq.com")});

//5、关闭邮件连接

transport.close();

}

public static void main(String[] args){

try {

SendMail("我的主题","

测试邮件内容

");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

注意:演示为163邮箱,其他邮箱请修改smtp地址,域名邮箱则改为自己的域名

例子:smtp.163.com,smtp.qq.com,smtp.idaobin.com

产生n位数的不重复随机码

RandomStringUtil.java

import java.util.Random;

public class RandomStringUtil {

public static String getRandString(int length)

{

String charList = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

String rev = "";

Random f = new Random();

for(int i=0;i

{

rev += charList.charAt(Math.abs(f.nextInt())%charList.length());

}

return rev;

}

public static void main(String[] args){

String str = getRandString(6);

//把随机码存入session,在调用方法取出做判断

System.out.print(str);

}

}

让我恰个饭吧.ヘ( ̄ω ̄ヘ)

支付宝 ——————- 微信

恰饭广告

b2fa10417bcbd2c397d3c42ce544672e.gif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值