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().length>0){
//          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 List<String> 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 List<String> getCcUserList(){
        return ccUserList;
    }
    public void setCcUserList(List<String> 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("设置邮箱内容 如http://www.guihua.org 中国桂花网 是中国最大桂花网站==");
        
        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格式
    }



这样发

追问

重点是在:
内容是从数据库中读取的数据,并列成表格的状态发送出去
重点是发送的内容,怎么样才能发送一个列好的表格

追答

你是想发一个excel附件还是想在页面中直接显示一个表格?
如果是想发一个excel附件那得先生成,如果是页面显示表格那就html

追问

直接在页面显示,我看了有一个方法是在邮件页面直接套了一个html,但是我不知道在发送邮件的代码该怎么做啊

追答

。。。你会发送普通的邮件吧,假定为会
。。。你会写html吧,假定为会。

把你要发送的内容写成html格式
String content="";
content+=
for(Sting a:list){

content+=

aaaaa

}
content+=

然后再把contet按普通邮件的方式发出去。

我说的清楚吧

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-01-06
其他省略,直接上邮件内容,以html格式编写:
String[] toMail = {"发送邮箱1","发送邮箱2...@163.com"};
String subject = "Mark-最近一周的生产记录异常数据!!!";
//一下即为邮件内容content
String html = "<html><body><font size='15' color='black'><table align='left' border='1' cellpadding='1' cellspacing='0'>"
+ "<tr style='font-size: 16px;' height='20px' bgcolor='#DCDCDC'>"
+ "<th>BadgeNo</th><th>Shift</th><th>Section</th><th>SerialNo</th><th>DateTimeIn</th><th>TimeSpan/秒</th></tr>";
for (EMS_Outliers Outliers : list) {
html += "<tr><td>"+Outliers.getBadgeNo()+"</td><td align='center'>"+Outliers.getShift()+"</td><td>"+Outliers.getSection()+"</td><td>"
+Outliers.getSerialNo()+"</td><td>"+Outliers.getDateTimeIn()+"</td><td align='center'>"+Outliers.getTimeSpan()+"</td></tr>";
}
html += "</table></font></body></html>";
try {//一下为调用的发送邮件的方法
MailGroupSending.sendhtmlmail(mailUser, mailpwd, toMail, subject, html, null, null);
} catch (Exception e) {
e.printStackTrace();
}

java 发送邮件,内容是要从数据库中读取的数据并列成表格的状态发送出去...
} public String getMailServerPort() { return mailServerPort; } public void setMailServerPort(String mailServerPort) { this.mailServerPort = mailServerPort; } public boolean isValidate() { return validate; } public void setValidate(boolean validate) { ...

怎样用Java实现将在数据库中查询到的数据显示在表格中
JTable的有一个方法是getTableModel().返回提供此 JTable 所显示数据的 TableModel.TableModel是一个接口,实际上返回的是DefaultTableModel类,它实现了TableModel接口。这个类中有一个方法是void addRow(Object[] rowData)。它就是将一行插入到JTable中。不过JTable的setValueAt方法应该就可以实现。楼...

急!我用Java连接了数据库并读取了一个表中的数据,如何在jsp页面中以...
如果你没有使用框架,那就用html语言和<%%> scriptlet来处理。类似这样子 < List list= 数据List;\/\/你的数据 > ID 名字 年龄 < for(int i=0;i<list.size();i++){ > <%=(Data)list.get(i).id%> <%=(Data)list.get(i).name%> <%=(Data)list.get(i).age%> < } >...

如何让EXTJS中表格的内容和数据库中查询出的顺序一样
显示的数据跟查出来的数据顺序本来就是一样的吧,只要你后台没有再做其他处理,直接查出来的肯定是一样的,而且也没必要非要与数据库的顺序一样啊,有什么需求会这样要求的。。如果是乱的话可以在sql中加一个order by按照一个字段排序好,然后extjs中store中也用这个字段排序,排序规则一样的那数据肯...

JAVA 导入数据库到Excel数据就是把图中Table中的信息放入Excel保存,需要...
JAVA 导入数据库到Excel数据就是把图中Table中的信息放入Excel保存,需要在按钮下设置什么动作 就是把图中Table中的信息放入Excel保存,需要在按钮下设置什么动作,如果帮助有效还会加分。开发环境Eclipse,Access数据库。要有详细代码和解释,再加分啊。... 就是把图中Table中的信息放入Excel保存,需要在按钮下设置什么...

怎样把数据库中的内容显示到网页的表格中 如显示课程表
你要实现这个功能必须有java代码支持,做一个查询,然后用list循环查出来,在页面上有多种方法显示,你看看我的代码使用的是each循环输出到页面的,el表达式的方法,你先看看吧,这个我做的是图书管理系统,就是用表格的形式展现的,设计到三大框架的知识,你好好研究下吧 ...

java 的 JTable,怎么把数据库查询的内容显示在表格上?
public class BookModel extends AbstractTableModel{ Vector rowData=null; Vector columnNames=null; public BookModel(){ rowData=new Vector(); columnNames=new Vector(); columnNames.add("馆藏书号"); columnNames.add("书名"); columnNames.add("作者"); column...

JAVA语句实现提取数据库中的数据
然后通过这个连接来提取数据库中的数据 实现业务流程 package auction.dao.impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import auction.dao.AuctionUserDao;import auction....

Java word读取\/导出\/修改 最强工具 aspose(2.2 读取表格中的文本与图片...
Java中,Aspose是处理Word文档的强大工具,尤其是在读取、导出和修改表格内容方面。当需要将Word文档中的数据导入数据库时,这个功能尤其实用,比如整理个人或项目资料。Aspose支持指定不同的节点类型,如NodeType.TABLE(表格)、NodeType.ROW(行)和NodeType.CELL(单元格),以获取不同层次的表格数据。首先...

用java如何将查询的结果在table中显示
利用Java开发数据库应用系统时,经常需要在用户界面上显示查询结果。由于SUN公司提供的JDK1.x开发工具包不是可视化的集成开发环境(IDE),不能象Delphi、VB那样方便地把查询结果在DBGrid等表格中显示出来。因此,只能靠自己编写代码来实现。在实际应用中,我们可以利用Vector、JTable、AbstractTableModel等三个...

相似回答