Java实现发送邮件:
1、 代码:
package cn.db.oa.util;
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 MailWeb {
private final Stringsubject; //邮箱
private final String to; //标题
private final Stringneirong; //正文
public MailWeb(String t,Stringsubt,String nr)
{
subject=subt;
to=t;
neirong=nr;
}
public void send()
{
//szteaport@qq.com paul5198
Properties props = newProperties();
//设置邮件服务器地址,连接超时时限等信息
props.put("mail.smtp.host", "smtp.qq.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.connectiontimeout","10000");
props.put("mail.smtp.timeout", "10000");
//创建缺省的session对象
Session session =Session.getDefaultInstance(props, null);
//创建message对象
Message msg = newMimeMessage(session);
//设置发件人和收件人
try{//376927062@qq.compaul5198
InternetAddressaddressFrom = new InternetAddress("发件人账号@qq.com");
msg.setFrom(addressFrom);
InternetAddress addressTo= new InternetAddress(to);
msg.setRecipient(Message.RecipientType.TO, addressTo);
//设置邮件标题,中文编码
//subject =MimeUtility.encodeText(new String(subject.getBytes(), "GB2312"),"GB2312", "B");
msg.setSubject(subject);
msg.setText(neirong);
Transport transport = session.getTransport("smtp");
transport.connect("smtp.qq.com", "发件人账号@qq.com", "发件人密码);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)throws Exception{
new MailWeb("收件人账号@qq.com","通过java发邮件","通过java发邮件").send();
}
}
2、 导入mail.jar和activation.jar和解决异常
java.lang.NoClassDefFoundError:com/sun/mail/util/LineInputStream:
E:\yangzh\myeclipse\Common\plugins\com.genuitec.eclipse.j2eedt.core_8.5.0.me201003231033\data\libraryset\EE_5
这个路径里,可以看到javaee.jar,用rar把这个文件打开,然后进到javax文件夹里,删除mail.jar和activation.jar(我的javaee.jar里,这两个东西是文件夹,总之删掉就OK,不过要注意备份一下)
3、 开启smtp服务: