关于java开发邮件接收程序的一点总结

论坛 期权论坛     
选择匿名的用户   2021-5-28 02:08   14   0
<p> 用java开发邮件接收程序需要用到javamail包,资源地址:http://java.sun.com/products/javamail/,最新版是 JavaMail 1.4.3 ,下载地址是:http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/javamail-1.4.3.zip?BundledLineItemUUID&#61;gqFIBe.oRjUAAAEl1r4xay_N&amp;OrderID&#61;t1BIBe.o3q4AAAElxL4xay_N&amp;ProductID&#61;J3tIBe.pJGsAAAElR5Jh6wjK&amp;FileName&#61;/javamail-1.4.3.zip。</p>
<p>里面有两个关键的jar包,分别是mail.jar和activation.jar,一定要放在java目录/jre/lib/ext目录里面,否则会在编译时报错,错误信息如下:</p>
<p>ReceiveMail.java:10: package javax.mail does not exist<br>import javax.mail.*;<br>^<br>ReceiveMail.java:11: package javax.mail.internet does not exist<br>import javax.mail.internet.*;</p>
<p> </p>
<p>下面贴出来一个例子代码,供参考(当然你也可以网上查到)</p>
<p> </p>
<p>// java 收邮件程序<br>import java.io.*;    <br>import java.text.*;    <br>import java.util.*;    <br>import javax.mail.*;    <br>import javax.mail.internet.*;    <br>   <br>/**   <br>* 有一封邮件就需要建立一个ReciveMail对象   <br>*/   <br>public class ReceiveMailDemo {    <br>    private MimeMessage mimeMessage &#61; null;    <br>    private String saveAttachPath &#61; &#34;&#34;; //附件下载后的存放目录    <br>    private StringBuffer bodytext &#61; new StringBuffer();//存放邮件内容    <br>    private String dateformat &#61; &#34;yy-MM-dd HH:mm&#34;; //默认的日前显示格式    <br>   <br>    public ReceiveMailDemo(MimeMessage mimeMessage) {    <br>        this.mimeMessage &#61; mimeMessage;    <br>    }    <br>   <br>    public void setMimeMessage(MimeMessage mimeMessage) {    <br>        this.mimeMessage &#61; mimeMessage;    <br>    }    <br>   <br>    /**   <br>     * 获得发件人的地址和姓名   <br>     */   <br>    public String getFrom() throws Exception {    <br>        InternetAddress address[] &#61; (InternetAddress[]) mimeMessage.getFrom();    <br>        String from &#61; address[0].getAddress();    <br>        if (from &#61;&#61; null)    <br>            from &#61; &#34;&#34;;    <br>        String personal &#61; address[0].getPersonal();    <br>        if (personal &#61;&#61; null)    <br>            personal &#61; &#34;&#34;;    <br>        String fromaddr &#61; personal &#43; &#34;&lt;&#34; &#43; from &#43; &#34;&gt;&#34;;    <br>        return fromaddr;    <br>    }    <br>   <br>    /**   <br>     * 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同 &#34;to&#34;----收件人 &#34;cc&#34;---抄送人地址 &#34;bcc&#34;---密送人地址   <br>     */   <br>    public String getMailAddress(String type) throws Exception {    <br>        String mailaddr &#61; &#34;&#34;;    <br>        String addtype &#61; type.toUpperCase();    <br>        InternetAddress[] address &#61; null;    <br>        if (addtype.equals(&#34;TO&#34;) || addtype.equals(&#34;CC&#34;)|| addtype.equals(&#34;BCC&#34;)) {    <br>            if (addtype.equals(&#34;TO&#34;)) {    <br>                address &#61; (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.TO);    <br>            } else if (addtype.equals(&#34;CC&#34;)) {    <br>                address &#61; (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.CC);    <br>            } else {    <br>                address &#61; (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.BCC);    <br>            }    <br>            if (address !&#61; null) {    <br>                for (int i &#61; 0; i &lt; address.length; i&#43;&#43;) {    <br>                    String email &#61; address[i].getAddress();    <br>                    if (email &#61;&#61; null)    <br>                        email &#61; &#34;&#34;;    <br>                    else {    <br>                        email &#61; MimeUtility.decodeText(email);    <br>                    }    <br>                    String personal &#61; address[i].getPersonal();    <br>                    if (personal &#61;&#61; null)    <br>                        personal &#61; &#34;&#34;;    <br>                    else {    <br>                        personal &#61; MimeUtility.decodeText(personal);    <br>                    }    <br>                    String compositeto &#61; personal &#43; &#34;&lt;&#34; &#43; email &#43; &#34;&gt;&#34;;    <br>                    mailaddr &#43;&#61; &#34;,&#34; &#43; compositeto;    <br>                }    <br>                mailaddr &#61; mailaddr.substring(1);    <br>            }    <br>        } else {    <br>            throw new Exception(&#34;Error emailaddr type!&#34;);    <br>        }    <br>        return mailaddr;    <br>    }    <br>   <br>    /**   <br>     * 获得邮件主题   <br>     */   <br>    public String getSubject() throws MessagingException {    <br>        String subject &#61; &#34;&#34;;    <br>        try {    <br>            subject &#61; MimeUtility.decodeText(mimeMessage.getSubject());    <br>            if (subject &#61;&#61; null)    <br>                subject &#61; &#34;&#34;;    <br>        } catch (Exception exce) {}    <br>        return subject;    <br>    }    <br>   <br>    /**   <br>     * 获得邮件发送日期   <br>     */   <br>    public String getSentDate() throws Exception {    <br>        Da
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP