「java读取邮件」java读取邮件正文

博主:adminadmin 2023-01-16 20:21:07 394

本篇文章给大家谈谈java读取邮件,以及java读取邮件正文对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

通过ews java api怎么自动获取exchange的邮件

一、通过Exchange Web Service来读取

1、首先,在项目上添加Web Service引用,这个Web Service的URL 地址格式如:https:// Exchange邮件系统的服务器名/EWS/Exchange.asmx

2、引入如下命名空间:

using System.Net;

using System.Net.Security;

using System.Security.Cryptography.X509Certificates;

3、编写代码读取邮件信息:

//忽略SSL证书请求必须的,不添加在执行时会报错,错误信息好像是(记不清了)“客户端响应错误………html / text”

ServicePointManager.ServerCertificateValidationCallback =

delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

{ return true; };

//创建Exchange服务绑定对象

ExchangeServiceBinding exchangeServer = new ExchangeServiceBinding();

//创建安全身份凭证

ICredentials creds = new NetworkCredential("username", "password", "domain");

//建立信任连接

exchangeServer.Credentials = creds;

exchangeServer.Url = "https:// Exchange邮件系统的服务器名/EWS/Exchange.asmx";

java 发送邮件,内容是要从数据库中读取的数据并列成表格的状态发送出去

 public boolean sendTextMail(MailSenderInfo mailInfo) {    

      // 判断是否需要身份认证    

      MyAuthenticator authenticator = null;    

      Properties pro = mailInfo.getProperties();   

      if (mailInfo.isValidate()) {    

      // 如果需要身份认证,则创建一个密码验证器    

        authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());    

      }   

      // 根据邮件会话属性和密码验证器构造一个发送邮件的session    

      Session sendMailSession = null;

      

      

      //sendMailSession = Session.getDefaultInstance(pro,authenticator); //获取默认可能报错

      sendMailSession = Session.getInstance(pro,authenticator);//新创建一个session

      if (sendMailSession==null){

         System.out.println("无法获取邮件邮件Session");

      }

      try {    

      // 根据session创建一个邮件消息    

      Message mailMessage = new MimeMessage(sendMailSession);    

      // 创建邮件发送者地址    

      Address from = new InternetAddress(mailInfo.getFromAddress()); 

      // 设置邮件消息的发送者    

      mailMessage.setFrom(from); 

      // 创建邮件的接收者地址,并设置到邮件消息中

      Address to = new InternetAddress(mailInfo.getToAddress()); 

      

      mailMessage.setRecipient(Message.RecipientType.TO,to);

      

      // 设置邮件消息的主题    

      mailMessage.setSubject(mailInfo.getSubject());    

      // 设置邮件消息发送的时间    

      mailMessage.setSentDate(new Date());    

      // 设置邮件消息的主要内容    

      String mailContent = mailInfo.getContent();    

      mailMessage.setText(mailContent);    

     

      

      

      //添加附件

//      if(mailInfo.getAttachFileNames()!=null || mailInfo.getAttachFileNames().length0){

//          Multipart mp = new MimeMultipart();  

//          MimeBodyPart mbp=null;

//          for(String fileName:mailInfo.getAttachFileNames()){

//              mbp=new MimeBodyPart();

//              FileDataSource fds=new FileDataSource(fileName); //得到数据源  

//              mbp.setDataHandler(new DataHandler(fds)); //得到附件本身并至入BodyPart  

//              mbp.setFileName(fds.getName());  //得到文件名同样至入BodyPart  

//              mp.addBodyPart(mbp);  

//          }

//          mailMessage.setContent(mp);

//      }

      

      // 发送邮件    

      Transport.send(mailMessage);   

      return true;    

      } catch (MessagingException ex) {    

          ex.printStackTrace();

          

      }    

      return false;    

    }    

    public class MailSenderInfo {    

    // 发送邮件的服务器的IP和端口    

    private String mailServerHost;    

    private String mailServerPort = "25";    

    // 邮件发送者的地址    

    private String fromAddress;    

    // 邮件接收者的地址    

    private String toAddress;    

    // 登陆邮件发送服务器的用户名和密码    

    private String userName;    

    private String password;    

    // 是否需要身份验证    

    private boolean validate = false;    

    // 邮件主题    

    private String subject;    

    // 邮件的文本内容    

    private String content;    

    // 邮件附件的文件名    

    private String[] attachFileNames;     

    

    //邮件抄送人

    

    private ListString ccUserList;

    /** *//**   

      * 获得邮件会话属性   

      */    

    public Properties getProperties(){    

      Properties p = new Properties();    

      p.put("mail.smtp.host", this.mailServerHost);    

      p.put("mail.smtp.port", this.mailServerPort);    

      p.put("mail.smtp.auth", validate ? "true" : "false");    

      return p;    

    }    

    public String getMailServerHost() {    

      return mailServerHost;    

    }    

    public void setMailServerHost(String mailServerHost) {    

      this.mailServerHost = mailServerHost;    

    }   

    public String getMailServerPort() {    

      return mailServerPort;    

    }   

    public void setMailServerPort(String mailServerPort) {    

      this.mailServerPort = mailServerPort;    

    }   

    public boolean isValidate() {    

      return validate;    

    }   

    public void setValidate(boolean validate) {    

      this.validate = validate;    

    }   

    public String[] getAttachFileNames() {    

      return attachFileNames;    

    }   

    public void setAttachFileNames(String[] fileNames) {    

      this.attachFileNames = fileNames;    

    }   

    public String getFromAddress() {    

      return fromAddress;    

    }    

    public void setFromAddress(String fromAddress) {    

      this.fromAddress = fromAddress;    

    }   

    public String getPassword() {    

      return password;    

    }   

    public void setPassword(String password) {    

      this.password = password;    

    }   

    public String getToAddress() {    

      return toAddress;    

    }    

    public void setToAddress(String toAddress) {    

      this.toAddress = toAddress;    

    }    

    public String getUserName() {    

      return userName;    

    }   

    public void setUserName(String userName) {    

      this.userName = userName;    

    }   

    public String getSubject() {    

      return subject;    

    }   

    public void setSubject(String subject) {    

      this.subject = subject;    

    }   

    public String getContent() {    

      return content;    

    }   

    public void setContent(String textContent) {    

      this.content = textContent;    

    }

    public ListString getCcUserList(){

        return ccUserList;

    }

    public void setCcUserList(ListString ccUserList){

        this.ccUserList = ccUserList;

    }    

    

    

}   

public static void main(String[] args) {

        // 这个类主要是设置邮件

        MailSenderInfo mailInfo = new MailSenderInfo();

        mailInfo.setMailServerHost("smtp.163.com");

        mailInfo.setMailServerPort("25");

        mailInfo.setValidate(true);

        mailInfo.setUserName("zhengzhanzong@163.com");

        mailInfo.setPassword("zzzong0828");// 您的邮箱密码

        mailInfo.setFromAddress("");

        //接受方信息

        mailInfo.setToAddress("");

        mailInfo.setSubject("邮箱标题 ");

        mailInfo.setContent("设置邮箱内容 如 中国桂花网 是中国最大桂花网站==");

        

        String[] files=new String[]{"D:/1.txt","D:/2.txt","D:/3.txt"};

        mailInfo.setAttachFileNames(files);

        // 这个类主要来发送邮件

        SimpleMailSender sms = new SimpleMailSender();

        sms.sendTextMail(mailInfo);// 发送文体格式

        //sms.sendHtmlMail(mailInfo);// 发送html格式

    }

这样发

JAVA怎么获取邮件内容

给你一个参考,很详细,你只需要对照看下获取邮件内容的那部分就可以了。

java实现接收邮件,mail.jar

这个异常表示有类型转换错误,有个地方需要使用 javax.mail.Multipart 类型的对象,你用了 com.sun.mail.imap.IMAPInputStream 类型,所以出现了这个异常。

根据你给的有限的资料,暂时只能分析道这么多了。

java email怎么获取收件箱已发送已删除中的邮件 csdn

其实删除邮件很简单,在接收邮件的基础上对需要删除的邮件做一个标记(Flags类),然后程序就会对有做了标记的邮件进行删除。

在Flags类的内部类Flag中预定义了一些标志:

Flags.Flag.ANSWERED

Flags.Flag.DELETED (删除的标记,这一讲我们就要用到这个标记)

Flags.Flag.DRAFT

Flags.Flag.FLAGGED

Flags.Flag.RECENT

Flags.Flag.SEEN

Flags.Flag.USER

删除邮件:message[i].setFlag(Flags.Flag.DELETED, true);

讲到这里我想大家都已经想到删除一封邮件的程序到底怎样写了。

不过有一点要注意的,上一讲我们打开Folder的时候是用READ_ONLY,当然读文件用READ_ONLY是做够的,但是我要这一讲要做的操作时删除文件,READ_ONLY是没有删除邮件的权限,所以我们要改为READ_WRITE。

如果要检查某个邮件是否标记了Flags.Flag.DELETED,可以使用message[i].isSet(Flags.Flag DELETED)

注意:这个删除操作是将邮件彻底删除的,大家要谨慎使用,务必读懂代码再进行操作。不小心删除了重要的邮件,小弟不负责人哦,(*^__^*) 嘻嘻……

这个只是一个很简单的删除邮件,在现实中我们会考虑到删除邮件后会将邮件移动另外一个目录下(如已删除、垃圾箱),这些功能我会在后面会讲!

给个例子大家参考:

import Java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Properties;

import javax.mail.Flags;

import javax.mail.Folder;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Store;

public class DelMail {

public static void main(String[] args) throws Exception {

Properties props = new Properties();

Session session = Session.getDefaultInstance(props);

//取得pop3协议的邮件服务器

Store store = session.getStore("pop3");

//连接pop.qq.com邮件服务器

store.connect("pop.qq.com", "343820302@qq.com", "******");

//返回文件夹对象

Folder folder = store.getFolder("INBOX");

//设置读写

folder.open(Folder.READ_WRITE);

//获取信息

Message message[] = folder.getMessages();

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

for(int i=0; imessage.length; i++) {

System.out.println(i + ": " + message[i].getFrom()[0] + "\t" + message[i].getSubject());

System.out.println("Do you want to delete message? [YES to delete]");

String line = br.readLine();

if(line.equals("YES")) {

//设置删除标记

message[i].setFlag(Flags.Flag.DELETED, true);

}

}

folder.close(true);

store.close();

}

}

程序最后folder.close(true)执行了才会生效!

关于java读取邮件和java读取邮件正文的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。