java邮件发送简单实现代码
本文实例为大家分享了java邮件发送的具体代码,供大家参考,具体内容如下
我用的是maven项目,前台页码不多说,自己传邮箱地址进来就行。
只需要一个类实现,直接复制就可以
packagecom.mail;
importjava.util.Properties;
importjavax.mail.Address;
importjavax.mail.Message;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeMessage;
publicclassMySendMail{
/**
*@paramss
*@throwsException
*/
/*
*你只需要往sendMessage(Stringemail)传入的要发送的邮箱对象地址,再改下方法里的发送人信息就可以了
*本文发件邮箱标头为“我们是银行”
*/
publicvoidsendMessage(Stringemail)throwsException{
Propertiesprops=newProperties();
//开启debug调试
props.setProperty("mail.debug","true");
//发送服务器需要身份验证
props.setProperty("mail.smtp.auth","true");
//设置邮件服务器主机名
props.setProperty("mail.host","smtp.qq.com");
//发送邮件协议名称
props.setProperty("mail.transport.protocol","smtp");
props.setProperty("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.port","465");
props.setProperty("mail.smtp.socketFactory.port","465");
//设置环境信息
Sessionsession=Session.getInstance(props);
//创建邮件对象
Messagemsg=newMimeMessage(session);
msg.setSubject("我们是银行");
//设置邮件内容
msg.setText("******这是一封验证邮箱的邮件******\n如果您有投资的意愿,请回复邮件,我们会有业务员跟您联系!");
//设置发件人,并设置标头
msg.setFrom(newInternetAddress("*****@qq.com","我们是银行"));
//获得链接
Transporttransport=session.getTransport();
//连接邮件服务器,这里设置发件人的邮箱和密码。如果是163的邮箱就把"smtp.qq.com"改成"smtp.163.com"
//其他的同理,不然连接不到邮件服务器
transport
.connect("smtp.qq.com","***@qq.com","*****密码*******");
//发送邮件
transport
.sendMessage(msg,newAddress[]{newInternetAddress(email)});
//关闭连接
transport.close();
}
}
注意导的包,是javax.mail的。建议直接复制就可以。
直接运行,去查看你发送的邮箱是否收到就可以了。
可能会出现这个异常:
javax.mail.NoSuchProviderException:Unabletolocateproviderforprotocol:smtp
这是由于jar包冲突造成的,如果你也是maven,则只要添加下面代码就行,在pom.xml中进行添加一下代码。
javax.mail 1.4.1 javax.activation activation 1.0.2
如果还是不能解决,再在pom.xml中加入如下代码
org.apache.geronimo.specs geronimo-javamail_1.4_spec org.apache.geronimo.specs geronimo-activation_1.1_spec
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。