Properties props = new Properties
(); props.put("mail.smtp.host", "smtp.xxxx.com");//可以换上你的smtp主机名,就像你在OutLook中设置smtp主机名一样。 |
Session session = Session.getInstance(props, null); |
MimeMessage msg = new MimeMessage(session); |
Transport.send(msg); |
import java.util.* ; import java.io.* ; import javax.mail.* ; import javax.mail.internet.* ; import javax.activation.* ; public class Mail { //定义发件人、收件人、主题等 String to=""; String from=""; String host=""; String filename=""; String subject=""; //用于保存发送附件的文件名的集合 Vector file = new Vector(); //做一个可以传发件人等参数的构造 public Mail (String to,String from,String smtpServer,String subject){ //初始化发件人、收件人、主题等 this.to=to; this.from=from; this.host=smtpServer; this.subject=subject; } //该方法用于收集附件名 public void attachfile(String fname){ file.addElement(fname); } //开始发送信件的方法 public boolean startSend(){ //创建Properties对象 Properties props = System.getProperties(); //创建信件服务器 props.put("mail.smtp.host", host); //得到默认的对话对象 Session session=Session.getDefaultInstance(props, null); try { //创建一个消息,并初始化该消息的各项元素 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); InternetAddress[] address={new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO,address); msg.setSubject(subject); //后面的BodyPart将加入到此处创建的Multipart中 Multipart mp = new MimeMultipart(); //利用枚举器方便的遍历集合 Enumeration efile=file.elements(); //检查序列中是否还有更多的对象 while(efile.hasMoreElements()){ MimeBodyPart mbp=new MimeBodyPart(); //选择出每一个附件名 filename=efile .nextElement().toString(); //得到数据源 FileDataSource fds=new FileDataSource(filename); //得到附件本身并至入BodyPart mbp.setDataHandler(new DataHandler(fds)); //得到文件名同样至入BodyPart mbp.setFileName(fds.getName()); mp.addBodyPart(mbp); } //移走集合中的所有元素 file.removeAllElements(); //Multipart加入到信件 msg.setContent(mp); //设置信件头的发送日期 msg.setSentDate(new Date()); //发送信件 Transport.send(msg); } catch (MessagingException mex) { mex.printStackTrace(); Exception ex = null; if ((ex=mex.getNextException())!=null){ ex.printStackTrace(); } return false; } return true; } } |
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class SendMail extends HttpServlet implements SingleThreadModel{ public void init(ServletConfig Conf) throws ServletException { super.init(Conf); } public void doPost(HttpServletRequest Req, HttpServletResponse Res) throws ServletException, IOException { try{ //实例化刚才我们做的类,并按其构造传进相应的参数 Mail sendmail=newMail("zhang@263.net", "chtwoy@21cn.com","smtp.21cn.com","test"); sendmail.attachfile("table.pdf"); sendmail.startSend(); }catch(Exception e){ e.printStackTrace(); } } public void destroy() { } } |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。