首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

详解简易邮件兑现方法

2012-12-25 
详解简易邮件实现方法邮件是信息化时代不可缺少的交流方式之一,那我们如何去实现用自己写的程序发送邮件呢

详解简易邮件实现方法

邮件是信息化时代不可缺少的交流方式之一,那我们如何去实现用自己写的程序发送邮件呢?想必大家都对JavaMail有一定的了解吧,它是sun公司发布的处理email的API可以发送一些生活中常用的邮件。JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。

首先我们介绍如何去实现发一封带有邮件并切包含图片的邮件(基于JavaMail开发出类似于Microsoft?Outlook的应用程序,我们要把我们自己写的邮件文件在Outlook中打开)。再介绍之前,我们先去了解一下如何在一封邮件中实现及带有附件又带有图片,并且如何去设置它们的关系:

详解简易邮件兑现方法

此图来自-----redarmy_chen

下面是具体实现代码:package cn.csdn.javamail;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;public class MailImageAndAttch {/** * @param args * @throws MessagingException  * @throws AddressException  * @throws IOException  * @throws FileNotFoundException  */public static void main(String[] args) throws AddressException, MessagingException, FileNotFoundException, IOException {// TODO Auto-generated method stub//创建邮件 MimeMessage message=new MimeMessage(Session.getInstance(System.getProperties()));//设置邮件 message.setFrom(new InternetAddress("Longmanfei@qq.com"));message.setRecipient(Message.RecipientType.TO, new InternetAddress("longmanfei@qq.com"));message.setSubject("复杂邮箱发送");//设置邮件属性MimeBodyPart text=new MimeBodyPart();text.setContent("发送邮件内容<br/><img src='cid:1.jpg'><br/>", "text/html;charset=utf-8");//设置图片MimeBodyPart image=new MimeBodyPart();image.setDataHandler(new DataHandler(new FileDataSource("src\\1.jpg")));image.setContentID("1.jpg");//设置图片和正文的关系MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text);mm.addBodyPart(image);mm.setSubType("related");//设置附件MimeBodyPart accth=new MimeBodyPart();DataHandler dh= new DataHandler(new FileDataSource("src\\大笑.mp3"));accth.setDataHandler(dh);String name=dh.getName();        //设置读取附件名称是不出现乱码accth.setFileName(MimeUtility.encodeText(name));//设置关系图片和bodypart关系MimeBodyPart part=new MimeBodyPart();part.setContent(mm);//设置关系MimeMultipart mM= new MimeMultipart();mM.addBodyPart(part);mM.addBodyPart(accth);mM.setSubType("mixed");//把MIME消息设置到message中message.setContent(mM);message.saveChanges();        message.writeTo(new FileOutputStream("d:\\66.eml"));}}下面是以另一种方式实现的简单发送邮件的方法:  package com.sfc.model;  import org.apache.commons.mail.*;  public class SendMail { public String to;/* 收信人地址 */ public String toName;//收信人姓名 public String subject;/* 主题 */ public String body;    public boolean sMail(String faname,String to,String toName,String subject,String body){    boolean flag=false;    HtmlEmail email=new HtmlEmail();     try {            email.setHostName("smtp.163.com");//设置发信的smtp服务器        email.addTo(to, toName);//设置收件人帐号和收件人    email.setFrom("Longmanfei@163.com",faname);//设置发信的邮件帐号和发信人    email.setSubject(subject);//设置邮件主题   email.setAuthentication("Longmanfei@163.com","123123");//如果smtp服务器需要认证的话,在这里设置帐号、密码    email.setCharset("utf-8");   //System.out.println("发送成功1");   email.setHtmlMsg("<B>您可以将联系方式公布</B><br>"+"<font color='#800000'>"+body+"</font><br>"+"<B><font color='red'>本消息来自58FF同城,有事您说话</font></B>");//设置邮件正文和字符编码     email.send();        flag=true;       } catch (EmailException e) {        //flag=false;       System.out.println("发送失败");   e.printStackTrace();   } return flag;    }}?

????? 这个相对上面那种要简单的多,至于如何发送带附件的邮件,我们可以登录官方网站去产看相应的实现方法。第二中实现方式当不是用java项目运行的时候,而是通过相应的web项目传值,去发送时有课能会报错,那是因为没有导入相应的包,当遇到错误时可以去百度查找并去官网下相应的jar包文件。

热点排行