- importjava.io.UnsupportedEncodingException;
- importjava.util.Date;
- importjava.util.Properties;
- importjavax.mail.Address;
- importjavax.mail.Message;
- importjavax.mail.MessagingException;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.AddressException;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- /**
- *邮件发送
- */
- publicclassSendMail{
- /**
- *不需要验证的邮件发送
- *StringfromMail发件人地址
- *Stringpassword发件人密码
- *StringtoMail收件人地址
- *StringmessageText发送的消息
- *Stringtitle发送的标题
- *StringserviceName使用的邮件服务器
- *@throwsException
- */
- publicstaticvoidsetMessage(StringfromMail,StringtoMail,
- StringmessageText,StringserviceName)throwsException{
- Propertiesprops=System.getProperties();
- props.put("mail.smtp.host",serviceName);//设置smtp的服务器地址:该邮件服务器不需要身份验证
- props.put("mail.smtp.auth","false");//设置smtp服务器要身份验证:缺省设置为false
- Addressfrom=newInternetAddress(fromMail);
- Addressto=newInternetAddress(toMail);
- Sessionsession=Session.getDefaultInstance(props,null);
- Messagemessage=newMimeMessage(session);
- message.setFrom(from);
- message.addRecipient(Message.RecipientType.TO,to);
- message.setText(messageText);
- Transport.send(message);
- }
- /**
- *带授权的发送邮件
- *StringfromMail发件人地址
- *Stringpassword发件人密码
- *StringtoMail收件人地址
- *StringmessageText发送的消息
- *Stringtitle发送的标题
- *StringserviceName使用的邮件服务器
- *@throwsException
- */
- publicstaticvoidsetMessageWithAuthentica(StringfromMail,Stringpassword,StringtoMail,StringmessageText,Stringtitle,StringserviceName)throwsException{
- Propertiesprops=newProperties();
- props.put("mail.smtp.host",serviceName);//设置smtp的服务器地址是smtp.sohu.com
- props.put("mail.transport.protocol","smtp");
- props.put("mail.smtp.auth","true");//设置smtp服务器要身份验证。
- StringformMailName=fromMail.split("@")[0];
- StringtoMailName=toMail.split("@")[0];
- PopupAuthenticatorauth=newPopupAuthenticator(formMailName,fromMail);
- Sessionsession=Session.getDefaultInstance(props,auth);
- session.setDebug(true);
- //发送人地址
- Transporttransport=null;
- try{
- AddressaddressFrom=newInternetAddress(fromMail,formMailName);
- //收件人地址
- Address[]addressTo=newAddress[]{newInternetAddress(toMail,toMailName)};
- //抄送地址
- //AddressaddressCopy=newInternetAddress("haocongping@gmail.com","GeorgeBush");
- Messagemessage=newMimeMessage(session);
- message.setText(messageText);
- message.setSubject(title);
- message.setFrom(addressFrom);
- message.addRecipients(Message.RecipientType.TO,addressTo);
- //message.addRecipient(Message.RecipientType.CC,addressCopy);
- message.saveChanges();
- //session.setDebug(true);
- transport=session.getTransport("smtp");//创建连接
- transport.connect(serviceName,fromMail,password);//连接服务器
- transport.sendMessage(message,addressTo);//发送信息
- transport.close();//关闭连接
- }catch(UnsupportedEncodingExceptione){
- e.printStackTrace();
- Loggers.error("发送邮件错误:SendMail--setMessageWithAuthentica--UnsupportedEncodingException:"+e);
- }catch(MessagingExceptione){
- e.printStackTrace();
- Loggers.error("发送邮件错误:SendMail--setMessageWithAuthentica--MessagingException"+e);
- }finally{
- if(transport!=null&transport.isConnected()){
- transport.close();
- }
- }
- }
- publicstaticvoidsetMsg(StringtoMail,Stringtitle,Stringcontent)throwsMessagingException{
- Propertiesprops=newProperties();
- props.put("mail.smtp.host","smtp.163.com");
- props.put("mail.smtp.auth","true");
- Sessions=Session.getInstance(props);
- s.setDebug(true);
- MimeMessagemessage=newMimeMessage(s);
- Transporttransport=null;
- try{
- InternetAddressfrom=newInternetAddress("xxx@163.com");
- message.setFrom(from);
- InternetAddressto=newInternetAddress(toMail);
- message.setRecipient(Message.RecipientType.TO,to);
- message.setSubject(title);
- message.setText(content);
- message.setSentDate(newDate());
- message.saveChanges();
- transport=s.getTransport("smtp");
- transport.connect("smtp.163.com","xxx","xxx");
- transport.sendMessage(message,message.getAllRecipients());
- transport.close();
- }catch(AddressExceptione){
- e.printStackTrace();
- Loggers.error("发送邮件错误:SendMail--setMsg--AddressException:"+e);
- }catch(MessagingExceptione){
- e.printStackTrace();
- Loggers.error("发送邮件错误:SendMail--setMsg--MessagingException:"+e);
- }finally{
- if(transport!=null&transport.isConnected()){
- transport.close();
- }
- }
- }
- publicstaticvoidmain(String[]args){
- try{
- SendMail.setMessageWithAuthentica("您的邮箱","您的密码","对方邮箱","邮件内容","邮件标题","服务器地址");
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- }
- importjavax.mail.Authenticator;
- importjavax.mail.PasswordAuthentication;
- publicclassPopupAuthenticatorextendsAuthenticator{
- privateStringuname;//用户名
- privateStringpassword;//密码
- //属性方法
- publicStringgetUname(){
- returnuname;
- }
- publicvoidsetUname(Stringuname){
- this.uname=uname;
- }
- publicStringgetPassword(){
- returnpassword;
- }
- publicvoidsetPassword(Stringpassword){
- this.password=password;
- }
- //构造方法
- publicPopupAuthenticator(){
- }
- publicPopupAuthenticator(Stringuname,Stringpassword){
- this.uname=uname;
- this.password=password;
- }
- publicPasswordAuthenticationgetPasswordAuthentication(){
- Stringusername=uname;//邮箱登录帐号
- Stringpwd=password;//登录密码
- returnnewPasswordAuthentication(username,pwd);
- }
- }