⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java资源网 深入探讨javamail api的使用.htm

📁 JavaMail的应用程序合集 jsp的java 的
💻 HTM
📖 第 1 页 / 共 4 页
字号:
                  <BR><BR>String from=args[1];//<FONT color=#660000>发信人地址</FONT> 
                  <BR><BR>String to =args[2];//<FONT color=#660000>收信人地址</FONT> 
                  <BR><BR>// <FONT color=#660000>创建properties对象</FONT> 
                  <BR><BR>Properties props = new Properties(); 
                  <BR><BR>file://<FONT color=#660000>创建邮件服务器</FONT> 
                  <BR><BR>props.put("mail.smtp.host", smtpHost); 
                  <BR><BR>file://<FONT color=#660000>取得默认的Session</FONT> 
                  <BR><BR>Session session = Session.getDefaultInstance(props, 
                  null); <BR><BR>// <FONT 
                  color=#660000>创建一条信息,并定义发信人地址和收信人地址</FONT> <BR><BR>MimeMessage 
                  message = new MimeMessage(session); 
                  <BR><BR>message.setFrom(new InternetAddress(from)); 
                  <BR><BR>InternetAddress[] address = {new InternetAddress(to)}; 
                  <BR><BR>message.setRecipients(Message.RecipientType.TO, 
                  address); <BR><BR>message.setSubject("Hello,FangZhou");//<FONT 
                  color=#660000>设定主题</FONT> <BR><BR>message.setSentDate(new 
                  Date());//<FONT color=#660000>设定发送时间</FONT> 
                  <BR><BR>message.setText(msgText);//<FONT 
                  color=#660000>把前面定义的msgText中的文字设定为邮件正文的内容</FONT> 
                  <BR><BR>file://<FONT color=#660000>发送邮件</FONT> 
                  <BR><BR>Transport.send(message); <BR><BR>} <BR><BR>} 
                  <BR>  问题二、如果我想在邮件中加上附件怎么办? 
                  <BR><BR>  这也是一个相当好的问题,要加入附件的话就要使用MimeBodyPart来创建邮件,只需把上面的程序稍加修改就可以了,为了简单起见,我在这里只是使用了一条字符串作为附件内容来解释如何添加附件。 
                  <BR><BR>file://<FONT color=#660000>msgText是信件的正文,共有两行</FONT> 
                  <BR><BR>static String msgText = "Dear Mr.FangZhou\nI’m a 
                  reader of your net!" <BR><BR>file://<FONT 
                  color=#660000>msgAttachment是一段字符串作为附件</FONT> <BR><BR>static 
                  String msgAttachment = "This is an attachment string!" 
                  <BR><BR>. . . . . . . . . <BR><BR>MimeBodyPart mbp1 = new 
                  MimeBodyPart(); <BR><BR>mbp1.setText(msgText); file://<FONT 
                  color=#660000>把前面定义的msgText中的文字设定为邮件正文的内容</FONT> 
                  <BR><BR>file://<FONT color=#660000>创建附件部分</FONT> 
                  <BR><BR>MimeBodyPart mbp2 = new MimeBodyPart(); 
                  <BR><BR>file://<FONT color=#660000>使用setText(text, 
                  charset)来加入附件</FONT> <BR><BR>mbp2.setText(msgAttachment, 
                  "gb2312"); <BR><BR>file://<FONT 
                  color=#660000>创建Multipart</FONT> <BR><BR>Multipart mp = new 
                  MimeMultipart(); <BR><BR>mp.addBodyPart(mbp1); 
                  <BR><BR>mp.addBodyPart(mbp2); <BR><BR>// <FONT 
                  color=#660000>添加 Multipart到Message中 
                  </FONT><BR><BR>message.setContent(mp); <BR><BR>file://<FONT 
                  color=#660000>发送邮件</FONT> <BR><BR>Transport.send(message); 
                  <BR><BR>} <BR>  问题三、我怎样从邮件服务器中获取邮件列表 
                  <BR><BR>  回答:其实实现这个问题的方法很简单 <BR><BR>  1. 
                  JavaMail客户端通过创建一个默认的会话(Session)对象来开始一个邮件处理任务 
                  <BR><BR>    Session session = 
                  Session.getDefaultInstance(props, authenticator); <BR><BR>  2. 
                  客户端使用Session对象的getStore方法来连接到默认到Store提供者。GetStore方法返回一个 Store 
                  对象子类,它支持用户属性中定义的连接协议。 <BR><BR>   Store store = 
                  session.getStore(); <BR><BR>   store.connect(); <BR><BR>  3. 
                  如果连接成功的话,客户端就能够列出Store中的可用的文件夹。然后我们就可以取得或时浏览特定的Message对象。 
                  <BR><BR>// <FONT color=#660000>取得 INBOX 文件夹</FONT> 
                  <BR><BR>Folder inbox = store.getFolder("INBOX"); <BR><BR>// 
                  <FONT color=#660033>打开 INBOX 文件夹</FONT> 
                  <BR><BR>inbox.open(Folder.READ_WRITE); <BR><BR>Message 
                  message[] = inbox.getMessage(); <BR><BR>for(int i 
                  =0;filenumber=message.length;i &lt; filenumber;i ++) <BR><BR>{ 
                  <BR><BR>System.out.println(“第”+i +”封信:”+message[i 
                  ].getFrom()[0]+”\t”+message[i ].getSubject()); <BR><BR>} 
                  <BR><BR>... <BR><BR>... <BR><BR>  4. 
                  最后,客户端关闭所有打开的文件夹,并关闭所有Store。 <BR><BR>inbox.close(); // <FONT 
                  color=#660000>关闭INBOX</FONT> <BR><BR>store.close(); // <FONT 
                  color=#660000>关闭Store</FONT> <BR><BR>  问题四:我想删除邮箱中的某些邮件,该怎么办呢? 
                  <BR><BR>  在邮件服务器上,我们如果想删除某封信的话,只需调用setFlag()来设置Flags.Flag.DELETE为真即可。 
                  <BR><BR>例如:Message message = folder.getMessage(1); 
                  <BR><BR>message.setFlag(Flags.Flag.DELETED, true); 
                  file://设置Flags.Flag.DELETE为真。 <BR><BR>// <FONT 
                  color=#660000>检查这封信的DELETED标记是否设置</FONT> <BR><BR>if 
                  (message.isSet(Flags.Flag.DELETED)) 
                  <BR><BR>System.out.println("这封信已被删除,请返回!"); 
                  <BR><BR>  问题五:我想知道我的邮箱中有多少封信我读过了有多少封信我没有读过,我该怎么办? 
                  <BR><BR>  我们知道,Folder对象提供了三个方法,getMessageCount,getNewMessageCount和getUnreadMessageCount。GetMessageCount方法显示邮箱中总共有多少封信,getNewMessageCount显示邮箱中新邮件的封数;getUnreadMessageCount显示邮箱中已读邮件的封数。利用这三个方法,我们可以很容易的看到邮箱中有多少封信我们已经读到过,有多少没有读。见下面的程序: 
                  <BR><BR>import javax.mail.*; <BR><BR>import 
                  javax.mail.internet.*; <BR><BR>public class CheckMyMailBox{ 
                  <BR><BR>public class void main( ) <BR><BR>throws Exception{ 
                  <BR><BR>Properties props= new <BR><BR>// <FONT 
                  color=#660000>创建properties对象</FONT> <BR><BR>Properties props = 
                  new Properties(); <BR><BR>file://<FONT 
                  color=#660000>获得Session</FONT> <BR><BR>Session session = 
                  Session.getDefaultInstance(props, null); <BR><BR>file://<FONT 
                  color=#660000>获得Store</FONT> <BR><BR>Store 
                  store=session.getStore(“pop3”);s 
                  <BR><BR>store.connect(Pop3Host,username,password); 
                  <BR><BR>file://<FONT color=#660000>获得folder,打开INBOX 
                  </FONT><BR><BR>Folder inbox= store.getFolder(“INBOX”); 
                  <BR><BR>file://<FONT color=#660000>以只读方式打开邮件夹</FONT> 
                  <BR><BR>inbox.open(Folder.READ_ONLY); <BR><BR>file://<FONT 
                  color=#660000>取得邮箱中总共有多少封信</FONT> <BR><BR>int numberOfTotal = 
                  inbox.getMessageCount(); <BR><BR>file://<FONT 
                  color=#660000>取得邮箱中未读过的信</FONT> <BR><BR>int numberOfUnread= 
                  inbox.getUnreadMessageCount(); 
                  <BR><BR>System.out.println(“您的邮箱中共有”+ numberOfTotal+”封邮件,其中有”+ 
                  numberOfUnread+”封没有读过”); <BR><BR>file://<FONT 
                  color=#660000>关闭连接</FONT> <BR><BR>inbox.close(); 
                  <BR><BR>store.close(); <BR>  问题六:我的邮件中有一个附件,我怎么把它打开呢? 
                  <BR><BR>  说到邮件中的附件,我不得不说一说Multipart类,Multipart类是Message类的子类,提供了在邮件中加入附加的实现方法。一个多部分邮件是一个内容类型(content-type)被设置为multipart的Message对象。Multipart类是一个容器类,包含Bodypart类型的对象。Bodypart对象是一个Part接口的实例,它既包括一个新的Multipart容器对象,又包括一个DataHandler对象。 
                  <BR><BR>下图显示了一个Multipart邮件的结构。 <BR><BR><IMG height=435 
                  src="Java资源网 深入探讨JavaMail API的使用.files/jt-2001-7-3-javama1.jpg" 
                  width=554><BR><BR>下图显示了一个典型的Multipart邮件的嵌套 <BR><BR><IMG 
                  height=510 
                  src="Java资源网 深入探讨JavaMail API的使用.files/jt-2001-7-3-javama2.jpg" 
                  width=554><BR><BR>当邮件中有附件时,邮件的内容就是Multipart而不是我在前面所说的Part类型了。我们需要取得Multipart的每一部分并根据以需要和内容进行处理。现在让我们看一看在程序上是如何实现的: 
                  <BR><BR>import java.io.*; <BR><BR>import java.util.Properties; 
                  <BR><BR>import javax.mail.*; <BR><BR>import 
                  javax.mail.internet.*; <BR><BR>public class getAttachment{ 
                  <BR><BR>public static void main(String args[]) <BR><BR>{ 
                  <BR><BR>String host=args[0]; <BR><BR>String username=args[1]; 
                  <BR><BR>String userpassword=args[2]; <BR><BR>n=3;//<FONT 
                  color=#660000>为了简单起见,我默认第三封信为有附件的邮件</FONT> <BR><BR>Session 
                  session =Session.getInstance(new Properties(),null); 
                  <BR><BR>Store store=session.getStore("pop3"); 
                  <BR><BR>store.connect(host,username,userpassword); 
                  <BR><BR>Folder folder=store.getFolder("INBOX"); 
                  <BR><BR>folder.open(Folder.READ_ONLY); <BR><BR>Message 
                  message[]=folder.getMessage(); <BR><BR>Object 
                  content=message[n].getContent(); <BR><BR>if (content 
                  instanceof Multipart) <BR><BR>{ 
                  <BR><BR>handleMultiPart((Multipart)content); <BR><BR>} 
                  <BR><BR>else <BR><BR>{ <BR><BR>handlePart(message[n]); 
                  <BR><BR>} <BR><BR>folder.close(); <BR><BR>store.close(); 
                  <BR><BR>} <BR><BR><BR><BR>public static void 
                  handleMultiPart(Multipart multipart) <BR><BR>{ <BR><BR>for(int 
                  i=0,i<MULTIPART.GETCOUNT();I++) <BR> <BR>{ 
                  <BR><BR>handlePart(multipart.getBodyPart(i)); <BR><BR>} 
                  <BR><BR>} <BR><BR><BR><BR>public static void handlePart(Part 
                  part) <BR><BR>{ <BR><BR>String disposit=part.getDisposition(); 
                  <BR><BR>String conType=part.getContentType(); 
                  <BR><BR>if(disposit==null){//<FONT color=#660000>如果只有正文 
                  </FONT><BR><BR>System.out.println("没有:"+conType); 
                  <BR><BR>file://<FONT color=#660000>检查是否为普通邮件</FONT> <BR><BR>if 
                  ((conType.length()&gt;=10)&amp;&amp;(conType.toLowerCase().substring(0,10).equals("text/plain"))){ 
                  <BR><BR>part.writeTo(System.out); <BR><BR>} <BR><BR>else { 
                  <BR><BR>file://<FONT 
                  color=#660000>可能为HTML格式的邮件,但是本文还不涉及这方面的内容故不予以考虑</FONT>。 
                  <BR><BR>System.out.println("其它各是的正文:"+conType); 
                  <BR><BR>part.writeTo(System.out); <BR><BR>} <BR><BR>} 
                  <BR><BR>else if (disposit.equals(Part.ATTACHMENT))//<FONT 
                  color=#660000>否则说明邮件中有附件</FONT> <BR><BR>{ 
                  <BR><BR>System.out.println("附件:"+part.getFileName()+:conType); 
                  <BR><BR>storeFile(part.getFileName(),part.getInputStream()); 
                  <BR><BR>} <BR><BR>else { 
                  <BR><BR>System.out.println("其它:"+disposit); <BR><BR>} 
                  <BR><BR>} <BR><BR>public static void storeFile(String 
                  fileName,InputStream inputstream)//保存文件 <BR><BR>{ <BR><BR>File 
                  file=new File(fileName); <BR><BR>for(int 
                  i=0;file.exists();i++) <BR><BR>{ <BR><BR>file= new 
                  File(fileName+i); <BR><BR>} <BR><BR>FileOutputStream 
                  fileoutputstream =new FileOutputStream(file); 
                  <BR><BR>BufferedOutputStream bufferedoutputstream =new 
                  BufferedOutputStream(fileoutputstream); 
                  <BR><BR>BufferedInputStream bufferedinputstream =new 
                  BufferedInputStream(BufferedInputStream); <BR><BR>int n; 
                  <BR><BR>while ((n=bufferedinputstream.read())!=-1) <BR><BR>{ 
                  <BR><BR>bufferedoutputstream.write(n); <BR><BR>} 
                  <BR><BR>bufferedoutputstream.flush(); 
                  <BR><BR>bufferedoutputstream.close(); 
                  <BR><BR>bufferedinputstream.close(); <BR><BR>} <BR><BR>} 
                  <BR><BR>本文用了一些问题和相应的解答,和大家探讨了JavaMail 
                  Api的使用方法,希望本文对大家的学习和工作有所帮助。 <BR><BR></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE class=buttomBorder cellSpacing=0 cellPadding=0 width="100%" 
            border=0>
              <TBODY>
              <TR>
                <TD class=Htitle align=left>  --相关文章--</TD></TR>
              <TR>
                <TD class=about align=left>· <A 
                  href="http://www.javazy.com/contentex/2005916165628.shtml" 
                  target=_blank>JavaMail的使用之邮件发送</A> (2005-09-16) </TD></TR>
              <TR>
                <TD class=about align=left>· <A 
                  href="http://www.javazy.com/contentex/200581610233.shtml" 
                  target=_blank>JavaMail API简介</A> (2005-08-16) </TD></TR>
              <TR>
                <TD class=about align=left>· <A 
                  href="http://www.javazy.com/contentex/20057615926.shtml" 
                  target=_blank>JavaMail常见问题</A> (2005-07-06) </TD></TR>
              <TR>
                <TD class=about align=left>· <A 
                  href="http://www.javazy.com/contentex/200571112546.shtml" 
                  target=_blank>在JSP中使用JavaMail</A> (2005-07-01) </TD></TR>
              <TR>
                <TD class=about align=left>· <A 
                  href="http://www.javazy.com/contentex/2005622173027.shtml" 
                  target=_blank>用JavaMail写简易电子邮件发送系统</A> (2005-06-22) </TD></TR>
              <TR>
                <TD class=about align=left>· <A 
                  href="http://www.javazy.com/contentex/2005622172914.shtml" 
                  target=_blank>深入探讨JavaMail API的使用</A> (2005-06-22) 
              </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY>
<TABLE>
  <TBODY></TBODY></TABLE>
<TABLE height=37 cellSpacing=0 cellPadding=0 width=760 align=center 
bgColor=#ffffff background="Java资源网 深入探讨JavaMail API的使用.files/but05_bg.gif" 
border=0>
  <TBODY>
  <TR>
    <TD width=19 background="Java资源网 深入探讨JavaMail API的使用.files/k_bg_left.gif" 
    bgColor=#ffa200><IMG height=37 
      src="Java资源网 深入探讨JavaMail API的使用.files/but05_left.gif" width=19></TD>
    <TD align=left width=312 
    background="Java资源网 深入探讨JavaMail API的使用.files/but05_bg.gif" 
      height=37>版权所有&copy;2005-2006 JAVA资源网 渝ICP备05007591号 </TD>
    <TD align=left width=26 
    background="Java资源网 深入探讨JavaMail API的使用.files/but05_bg.gif">
      <SCRIPT language=javascript 
      src="Java资源网 深入探讨JavaMail API的使用.files/click.htm"></SCRIPT>
    </TD>
    <TD class=fil align=right width=391><A class=p1 
      href="http://www.javazy.com/ad.asp">虚拟主机</A> | <A class=p1 
      href="http://www.javazy.com/page/other.asp?id=478">关于我们</A> | <A class=p1 
      href="http://www.javazy.com/page/other.asp?id=479">联系方式</A> | <A class=p1 
      href="http://www.javazy.com/page/other.asp?id=481">广告业务</A> | <A class=p1 
      href="http://www.javazy.com/map.asp">网站地图</A> | <A class=p1 
      href="http://www.javazy.com/page/index.asp?sortid=476&amp;id=1480">友情链接</A><BR></TD>
    <TD align=middle width=12 bgColor=#dbdbdb><IMG height=37 
      src="Java资源网 深入探讨JavaMail API的使用.files/but05_right.gif" 
  width=12></TD></TR></TBODY></TABLE>
<SCRIPT src="Java资源网 深入探讨JavaMail API的使用.files/urchin.js" type=text/javascript>
</SCRIPT>

<SCRIPT type=text/javascript>
_uacct = "UA-1805546-1";
urchinTracker();
</SCRIPT>
</CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -