JavaMail收发邮件的步骤

一、  发邮件

1) 获取Session

i) 实行一个Authentication类的子类,实行里面的public PasswordAuthentication getPasswordAuthentication()方法

ii) New一个上面类的实例,设置用户名和密码

iii) New一个Properties对象,设置mail.smtp.host  and mail.smtp.auth属性

iv) 同过Session的静态方法,获取一个Session实例

2) 生成Message

i) 没有附件的邮件

   第一步:new一个MimeMessage实例(根据Session)

   第二步:给Message实例设置subject、text属性

ii) 有附件的邮件

   第一步:根据Session new一个MimeMessage实例(Message)

   第二步:设置Message subject属性

   第三步:new一个MimeBodyPart实例 和 Mulipart(MimeMulipart)实例

   第四步:给MimeBodyPart实例设置邮件文本内容

   第五步:将MimeBodyPart实例,添加到Mulipart实例

   第六步:根据附件数循环:

           New MimeBodyPart实例

           获取FileDatasource

           将FileDatasource设置到MimeBodyPart

           设置MimeBodyPart的文件名

           将MimeBodyPart添加到 Mulipart

   第七步:将Mulipart设置成MimeMessage的内容

3) 发送邮件

i) 设置Message的fromAddress,toAddress,ccAddress,bccAddress

ii) Transport发送邮件     

二、  收邮件

1)new Properties实例,设置mail.pop3.host 的值

2)获取Session实例

3)根据Session,获取Store实例

4)连接store

5)获取Index文件夹

6)打开文件夹

7)获取文件夹里面所有Message

8)用FetchProfile优化Message的查找

    FetchProfile profile = new FetchProfile();

    profile.add(FetchProfile.Item.ENVELOPE);

    profile.add(FetchProfile.Item.FLAGS);

    profile.add("X-Mailer");

    inbox.fetch(msg, profile);

9)判断Message的MimeType类型如果是text/*类型,直接可以从Message从获取邮件from 地址、标题和内容,否则执行下面的步骤

10)从Message中获取Multipart

11)遍历Multipart中的BodyPart

12)判断bodyPart的Disposition是否是Part.ATTACHMENT

13)如果不是,直接获取bodyPart里面的content

14)否则获取bodyPart的文件名和文件流(inputstream),将流写入本地文件,实现附件的下载

TAG: JavaMail收发邮件 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
javaMail的详细文档,都有以下多有类的详细信息: ACL Address AddressException AddressStringTerm AddressTerm AndTerm AuthenticationFailedException Authenticator BodyPart BodyTerm ByteArrayDataSource ComparisonTerm ConnectionAdapter ConnectionEvent ConnectionListener ContentDisposition ContentType DateTerm DeliveryStatus DispositionNotification FetchProfile FetchProfile.Item Flags Flags.Flag FlagTerm Folder FolderAdapter FolderClosedException FolderEvent FolderListener FolderNotFoundException FromStringTerm FromTerm Header HeaderTerm HeaderTokenizer HeaderTokenizer.Token IllegalWriteException IMAPFolder IMAPFolder.FetchProfileItem IMAPFolder.ProtocolCommand IMAPMessage IMAPSSLStore IMAPStore IntegerComparisonTerm InternetAddress InternetHeaders InternetHeaders.InternetHeader MailDateFormat MailEvent MailHandler MailSSLSocketFactory Message Message.RecipientType MessageAware MessageChangedEvent MessageChangedListener MessageContext MessageCountAdapter MessageCountEvent MessageCountListener MessageHeaders MessageIDTerm MessageNumberTerm MessageRemovedException MessagingException MethodNotSupportedException MimeBodyPart MimeMessage MimeMessage.RecipientType MimeMultipart MimePart MimePartDataSource MimeUtility Multipart MultipartDataSource MultipartReport NewsAddress NoSuchProviderException NotTerm OrTerm ParameterList ParseException Part PasswordAuthentication POP3Folder POP3Message POP3SSLStore POP3Store PreencodedMimeBodyPart Provider Provider.Type Quota Quota.Resource QuotaAwareStore ReadOnlyFolderException ReceivedDateTerm RecipientStringTerm RecipientTerm Report Rights Rights.Right SearchException SearchTerm SendFailedException SentDateTerm Service Session SharedByteArrayInputStream SharedFileInputStream SharedInputStream SizeTerm SMTPAddressFailedException SMTPAddressSucceededException SMTPMessage SMTPSendFailedException SMTPSSLTransport SMTPTransport Store StoreClosedException StoreEvent StoreListener StringTerm SubjectTerm Transport TransportAdapter TransportEvent TransportListener UIDFolder UIDFolder.FetchProfileItem URLName
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值