- 浏览: 142801 次
- 性别:
- 来自: 北京
最新评论
-
笑傲郝:
JSP中,hidden用法 -
眼镜蛇:
哦,找到了,getComboVc()。开始没细看。不好意思
Swing中可多选下拉框的简单实现 -
眼镜蛇:
朋友不知你还能不能看到,这个组件写得非常好。但我想知道,我应该 ...
Swing中可多选下拉框的简单实现 -
lzth:
--什么是命名查询?
Hibernate允许在映射文件中定义 ...
Hibernate中sql-query return CDATA 用法 -
wuzhiyuzhi:
在这里面写SQL有什么用的呀?为什么要在XML里这样写?
Hibernate中sql-query return CDATA 用法
public boolean sendMailWithPic(String from, String to, String subject,
String content,
int subscribeid) {
// try {
// content = new String(content.getBytes("ISO-8859-1"),
// "GBK");
// } catch (UnsupportedEncodingException ex) {
// logger.error(ex.getMessage());
// }
Properties props = new Properties();
logger.info("服务器" + host);
props.put("mail.smtp.host", host); // 指定SMTP服务器
props.put("mail.smtp.auth", "true"); // 指定是否需要SMTP验证
try {
logger.info("收件人: " + to);
Session mailSession = Session.getDefaultInstance(props);
mailSession.setDebug(true); // 是否在控制台显示debug信息
LinkedList attachList = this.getLinkedlist(con); // 附件的list,它的element都是byte[],即图片的二进制流
logger.info("attachList的值为::::"+attachList.size());
Message message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from)); // 发件人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to)); // 收件人
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
message.setSubject("=?GB2312?B?" + enc.encode(subject.getBytes()) +
"?=");
// 新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
MimeMultipart mmt = new MimeMultipart();
// 新建一个存放信件内容的BodyPart对象
BodyPart mbp = new MimeBodyPart();
mbp.setContent(content, "text/html; charset=GBK");
// 这句很重要,千万不要忘了
mmt.setSubType("related");
mmt.addBodyPart(mbp);
// add the attachments
for (int i = 0; i < attachList.size(); i++) {
logger.info("i的值为::::::::::::"+i);
// 新建一个存放附件的BodyPart
MimeBodyPart mdp = new MimeBodyPart();
DataHandler dh = new DataHandler(new ByteArrayDataSource((byte[])
attachList.get(i), "application/octet-stream"));
mdp.setDataHandler(dh);
// 加上这句将作为附件发送,否则将作为信件的文本内容
mdp.setFileName(new Integer(i).toString() + ".jpg");
mdp.setHeader("Content-ID", "<IMG" + new Integer(i).toString()+">");
logger.info("jdjdjdjdjdjdjdjdj"+"<IMG" + new Integer(i).toString()+">");
// 将含有附件的BodyPart加入到MimeMultipart对象中
mmt.addBodyPart(mdp);
}
// 把mm作为消息对象的内容
message.setContent(mmt);
message.saveChanges();
// Multipart mm = new MimeMultipart();
//
// mm.addBodyPart(mbp); //将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
//
// message.setContent(mm); //把mm作为消息对象的内容
//
// message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
try {
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
} catch (Exception e) {
logger.error(e.getMessage());
boolean bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
while (bl == false) {
sleep(6000);
if (con != null) {
dboperate.close(con);
}
con = null;
con = getConnection();
bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
}
return false;
} finally {
transport.close();
}
} catch (Exception e) {
logger.error(e.getMessage());
boolean bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
while (bl == false) {
sleep(6000);
if (con != null) {
dboperate.close(con);
}
con = null;
con = getConnection();
bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
}
return false;
}
String sql = "update CSBILLSUBSCRIBE t set SENDTIME=sysdate,SENDSTATUS='发送成功!' where t.SUBSCRIBEID=" +
subscribeid;
boolean bl = DBOperate.executeUpdate(sql, con);
while (bl == false) {
sleep(6000);
if (con != null) {
dboperate.close(con);
}
con = null;
con = getConnection();
bl = DBOperate.executeUpdate(sql, con);
}
logger.info("发送成功");
return true;
}
/**
* 从数据库中去得图片的二进制数组,添加到LinkedList
* @param content String
* @param subscribeid int
* @param con Connection
* @return boolean
*/
public LinkedList getLinkedlist(Connection con) {
PreparedStatement ps = null;
ResultSet rs = null;
LinkedList liklist=new LinkedList();
String sql = "select * from csmpicupload order by PICID";
//String sql = "update CSBILLSUBSCRIBE t set SENDTIME=sysdate,SENDSTATUS=? where t.SUBSCRIBEID=?";
//content="发送失败!,原因:"+content;
logger.info(sql);
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Blob bb = rs.getBlob("PICSTORE");
long length=bb.length();
byte[] bt=bb.getBytes(1,(int)length);
liklist.add(bt);
}
} catch (SQLException ex2) {
logger.info("数据库异常错误!" + ex2.getMessage());
return null;
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (SQLException ex3) {
logger.info("数据库异常错误!" + ex3.getMessage());
return null;
}
}
return liklist;
}
-------------------------------------------------------------------------------------
邮件的内容如下:
sb = new StringBuffer();
String content = "";
sb.append("<style type=\"text/css\">.font { font-size: 12px; color: #000000}.font3 { font-size: 12px; font-weight: bold; color: #000000}</style><table id=\"printTable\" width=\"540\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">");
sb.append("<tr><td align=\"left\" colspan=\"2\"><img src=\"cid:IMG0\" width=\"100\" height=\"30\" border=\"0\"></td><td align=\"right\" colspan=\"4\"><img src=\"cid:IMG1\" width=\"100\" height=\"30\" border=\"0\"></td></tr>");
sb.append(
"<tr><TD colspan=\"3\" align=\"center\" class=\"font3\">电信有限公司").
append(oraName).append("分公司“我的e家”客户帐单<br></TD></tr><tr><TD align=\"left\" class=\"font\" width=\"400\" colspan=\"2\">客户名称:");
sb.append(customerorderbill.getACCTNAME()).append(
"</TD><TD align=\"right\" class=\"font\">计费周期:").
append(customerorderbill.getSTATEDATE()).append("<br>查询时间:").
append(customerorderbill.getCURDATE()).append(
"</TD></tr><tr></table>");
sb.append("<table width=\"540\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td align=\"center\" valign=\"top\" colspan=\"3\"><table id=\"sortTable\" width=\"540\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#CCCCCC\" class=\"a\"><tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" >基础包</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\">");
sb.append(customerorderbill.getPHONE()).append("</TD><TD class=\"font\" align=\"center\" colspan=\"2\" bgcolor=\"#FFFFFF\"></TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"120\">可选包</TD><TD class=\"font\" align=\"center\" width=\"140\" bgcolor=\"#FFFFFF\">").
append(customerorderbill.getPHS1()).append(" </TD><TD class=\"font\" align=\"center\" width=\"140\" bgcolor=\"#FFFFFF\">");
sb.append(customerorderbill.getPHS2()).append(" </TD><TD class=\"font\" align=\"center\" width=\"140\" bgcolor=\"#FFFFFF\">").
append(customerorderbill.getPHS3()).append(" </TD> </tr></table><table id=\"sortTable2\" width=\"540\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><TD class=\"font\" align=\"center\" colspan=\"6\">“我的e家”基础包及可选包成员合计费用信息(元)</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"130\">费用项目</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"50\">费用</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"130\">费用项目</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"50\">费用</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"130\">费用项目</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"50\">费用</TD></tr>");
logger.info("-------------开始循环-----------");
int num = list.size(); //费用总条数
for (Iterator it = list.iterator(); it.hasNext(); ) {
Acctitem acct = new Acctitem();
acct = (Acctitem) it.next();
// logger.info(acct.getACCTITEMTYPENAME() +
// ":::::::&&&&&&&&&&&&&&&&&&&&&&&&&:::::::::" +
// acct.getACCTITEMCHARGE());
}
//logger.info("list.size--------------" + num);
int hang = num / 3; //行数
if (num % 3 > 0) {
hang = hang + 1;
}
int m = 1;
logger.info("-------------开始费用总计-----------");
while (m <= hang) {
int k = 1;
sb.append("<tr>");
for (int b = 0; b < hang * 3; b++) {
//for (Iterator it = list.iterator(); it.hasNext(); ) {
// logger.info("-------------bean 循环-----------");
String paraname = "";
double paravalue = 0;
if (k == m) {
if (b < list.size()) {
Acctitem acct = new Acctitem();
acct = (Acctitem) list.get(b);
paraname = acct.getACCTITEMTYPENAME();
paravalue = acct.getACCTITEMCHARGE();
}
int dian = paraname.indexOf("、"); //判断是否缩进。
if (dian == -1) {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font\"> ").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
} else {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font3\">").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
}
} else if (k == m + hang) {
if (b < list.size()) {
Acctitem acct = new Acctitem();
acct = (Acctitem) list.get(b);
paraname = acct.getACCTITEMTYPENAME();
paravalue = acct.getACCTITEMCHARGE();
}
int dian = paraname.indexOf("、"); //判断是否缩进。
if (dian == -1) {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font\"> ").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
} else {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font3\">").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
}
} else if (k == hang * 2 + m) {
if (b < list.size()) {
Acctitem acct = new Acctitem();
acct = (Acctitem) list.get(b);
paraname = acct.getACCTITEMTYPENAME();
paravalue = acct.getACCTITEMCHARGE();
}
int dian = paraname.indexOf("、"); //判断是否缩进。
if (dian == -1) {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font\"> ").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
} else {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font3\">").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
}
}
k++;
}
sb.append("</tr>");
m++;
}
sb.append("<tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" >本月费用合计</TD> <TD class=\"font\" align=\"center\" colspan=\"5\" bgcolor=\"#FFFFFF\">").
append(customerorderbill.getBILLCHARGE()).append("元</TD></tr></table><table id=\"sortTable3\" width=\"540\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#CCCCCC\" class=\"a\"><tr><TD class=\"font\" align=\"center\" colspan=\"6\">通信量信息</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">本地通话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">国内长话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">国际长话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">台港澳长话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">点对点短信<br>(条)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">宽带上网时长<br>(小时)</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">");
sb.append(customerorderbill.getBDDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getGNDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getGJDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTGODURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getSMSDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getNETDURATION());
sb.append("</TD></tr><tr><TD class=\"font\" align=\"center\" colspan=\"6\">积分信息(分)</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">本期新增<br>A</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">上期末积余<br>B</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">本期使用<br>C</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">本期末积余<br>D=A+B-C</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\"> </TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\"> </TD></tr>");
sb.append(
"<tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTACHARGECNT()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getPECHARGECNT()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTTCHARGECNT()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTECHARGECNT()).append("</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\"> </TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\"> </TD></tr>");
sb.append("<tr><TD class=\"font\" align=\"center\" colspan=\"6\" bgcolor=\"#fafafa\">注:本积分统计至上月底,后付费用户未缴费部分的消费积分因未激活,不包含在上述积分中</TD></tr></table></td></tr>");
sb.append("<tr><td align=\"left\"><img src=\"cid:IMG2\" width=\"150\" height=\"30\" border=\"0\"></td><td align=\"right\"><img src=\"cid:IMG3\" width=\"150\" height=\"30\" border=\"0\"></td></tr></table>");
content = sb.toString();
String content,
int subscribeid) {
// try {
// content = new String(content.getBytes("ISO-8859-1"),
// "GBK");
// } catch (UnsupportedEncodingException ex) {
// logger.error(ex.getMessage());
// }
Properties props = new Properties();
logger.info("服务器" + host);
props.put("mail.smtp.host", host); // 指定SMTP服务器
props.put("mail.smtp.auth", "true"); // 指定是否需要SMTP验证
try {
logger.info("收件人: " + to);
Session mailSession = Session.getDefaultInstance(props);
mailSession.setDebug(true); // 是否在控制台显示debug信息
LinkedList attachList = this.getLinkedlist(con); // 附件的list,它的element都是byte[],即图片的二进制流
logger.info("attachList的值为::::"+attachList.size());
Message message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from)); // 发件人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to)); // 收件人
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
message.setSubject("=?GB2312?B?" + enc.encode(subject.getBytes()) +
"?=");
// 新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
MimeMultipart mmt = new MimeMultipart();
// 新建一个存放信件内容的BodyPart对象
BodyPart mbp = new MimeBodyPart();
mbp.setContent(content, "text/html; charset=GBK");
// 这句很重要,千万不要忘了
mmt.setSubType("related");
mmt.addBodyPart(mbp);
// add the attachments
for (int i = 0; i < attachList.size(); i++) {
logger.info("i的值为::::::::::::"+i);
// 新建一个存放附件的BodyPart
MimeBodyPart mdp = new MimeBodyPart();
DataHandler dh = new DataHandler(new ByteArrayDataSource((byte[])
attachList.get(i), "application/octet-stream"));
mdp.setDataHandler(dh);
// 加上这句将作为附件发送,否则将作为信件的文本内容
mdp.setFileName(new Integer(i).toString() + ".jpg");
mdp.setHeader("Content-ID", "<IMG" + new Integer(i).toString()+">");
logger.info("jdjdjdjdjdjdjdjdj"+"<IMG" + new Integer(i).toString()+">");
// 将含有附件的BodyPart加入到MimeMultipart对象中
mmt.addBodyPart(mdp);
}
// 把mm作为消息对象的内容
message.setContent(mmt);
message.saveChanges();
// Multipart mm = new MimeMultipart();
//
// mm.addBodyPart(mbp); //将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
//
// message.setContent(mm); //把mm作为消息对象的内容
//
// message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
try {
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
} catch (Exception e) {
logger.error(e.getMessage());
boolean bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
while (bl == false) {
sleep(6000);
if (con != null) {
dboperate.close(con);
}
con = null;
con = getConnection();
bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
}
return false;
} finally {
transport.close();
}
} catch (Exception e) {
logger.error(e.getMessage());
boolean bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
while (bl == false) {
sleep(6000);
if (con != null) {
dboperate.close(con);
}
con = null;
con = getConnection();
bl = DBOperate.executePreparedUpdate(e.getMessage(),
subscribeid, con);
}
return false;
}
String sql = "update CSBILLSUBSCRIBE t set SENDTIME=sysdate,SENDSTATUS='发送成功!' where t.SUBSCRIBEID=" +
subscribeid;
boolean bl = DBOperate.executeUpdate(sql, con);
while (bl == false) {
sleep(6000);
if (con != null) {
dboperate.close(con);
}
con = null;
con = getConnection();
bl = DBOperate.executeUpdate(sql, con);
}
logger.info("发送成功");
return true;
}
/**
* 从数据库中去得图片的二进制数组,添加到LinkedList
* @param content String
* @param subscribeid int
* @param con Connection
* @return boolean
*/
public LinkedList getLinkedlist(Connection con) {
PreparedStatement ps = null;
ResultSet rs = null;
LinkedList liklist=new LinkedList();
String sql = "select * from csmpicupload order by PICID";
//String sql = "update CSBILLSUBSCRIBE t set SENDTIME=sysdate,SENDSTATUS=? where t.SUBSCRIBEID=?";
//content="发送失败!,原因:"+content;
logger.info(sql);
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Blob bb = rs.getBlob("PICSTORE");
long length=bb.length();
byte[] bt=bb.getBytes(1,(int)length);
liklist.add(bt);
}
} catch (SQLException ex2) {
logger.info("数据库异常错误!" + ex2.getMessage());
return null;
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (SQLException ex3) {
logger.info("数据库异常错误!" + ex3.getMessage());
return null;
}
}
return liklist;
}
-------------------------------------------------------------------------------------
邮件的内容如下:
sb = new StringBuffer();
String content = "";
sb.append("<style type=\"text/css\">.font { font-size: 12px; color: #000000}.font3 { font-size: 12px; font-weight: bold; color: #000000}</style><table id=\"printTable\" width=\"540\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">");
sb.append("<tr><td align=\"left\" colspan=\"2\"><img src=\"cid:IMG0\" width=\"100\" height=\"30\" border=\"0\"></td><td align=\"right\" colspan=\"4\"><img src=\"cid:IMG1\" width=\"100\" height=\"30\" border=\"0\"></td></tr>");
sb.append(
"<tr><TD colspan=\"3\" align=\"center\" class=\"font3\">电信有限公司").
append(oraName).append("分公司“我的e家”客户帐单<br></TD></tr><tr><TD align=\"left\" class=\"font\" width=\"400\" colspan=\"2\">客户名称:");
sb.append(customerorderbill.getACCTNAME()).append(
"</TD><TD align=\"right\" class=\"font\">计费周期:").
append(customerorderbill.getSTATEDATE()).append("<br>查询时间:").
append(customerorderbill.getCURDATE()).append(
"</TD></tr><tr></table>");
sb.append("<table width=\"540\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td align=\"center\" valign=\"top\" colspan=\"3\"><table id=\"sortTable\" width=\"540\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#CCCCCC\" class=\"a\"><tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" >基础包</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\">");
sb.append(customerorderbill.getPHONE()).append("</TD><TD class=\"font\" align=\"center\" colspan=\"2\" bgcolor=\"#FFFFFF\"></TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"120\">可选包</TD><TD class=\"font\" align=\"center\" width=\"140\" bgcolor=\"#FFFFFF\">").
append(customerorderbill.getPHS1()).append(" </TD><TD class=\"font\" align=\"center\" width=\"140\" bgcolor=\"#FFFFFF\">");
sb.append(customerorderbill.getPHS2()).append(" </TD><TD class=\"font\" align=\"center\" width=\"140\" bgcolor=\"#FFFFFF\">").
append(customerorderbill.getPHS3()).append(" </TD> </tr></table><table id=\"sortTable2\" width=\"540\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><TD class=\"font\" align=\"center\" colspan=\"6\">“我的e家”基础包及可选包成员合计费用信息(元)</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"130\">费用项目</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"50\">费用</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"130\">费用项目</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"50\">费用</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"130\">费用项目</TD><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" width=\"50\">费用</TD></tr>");
logger.info("-------------开始循环-----------");
int num = list.size(); //费用总条数
for (Iterator it = list.iterator(); it.hasNext(); ) {
Acctitem acct = new Acctitem();
acct = (Acctitem) it.next();
// logger.info(acct.getACCTITEMTYPENAME() +
// ":::::::&&&&&&&&&&&&&&&&&&&&&&&&&:::::::::" +
// acct.getACCTITEMCHARGE());
}
//logger.info("list.size--------------" + num);
int hang = num / 3; //行数
if (num % 3 > 0) {
hang = hang + 1;
}
int m = 1;
logger.info("-------------开始费用总计-----------");
while (m <= hang) {
int k = 1;
sb.append("<tr>");
for (int b = 0; b < hang * 3; b++) {
//for (Iterator it = list.iterator(); it.hasNext(); ) {
// logger.info("-------------bean 循环-----------");
String paraname = "";
double paravalue = 0;
if (k == m) {
if (b < list.size()) {
Acctitem acct = new Acctitem();
acct = (Acctitem) list.get(b);
paraname = acct.getACCTITEMTYPENAME();
paravalue = acct.getACCTITEMCHARGE();
}
int dian = paraname.indexOf("、"); //判断是否缩进。
if (dian == -1) {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font\"> ").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
} else {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font3\">").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
}
} else if (k == m + hang) {
if (b < list.size()) {
Acctitem acct = new Acctitem();
acct = (Acctitem) list.get(b);
paraname = acct.getACCTITEMTYPENAME();
paravalue = acct.getACCTITEMCHARGE();
}
int dian = paraname.indexOf("、"); //判断是否缩进。
if (dian == -1) {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font\"> ").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
} else {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font3\">").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
}
} else if (k == hang * 2 + m) {
if (b < list.size()) {
Acctitem acct = new Acctitem();
acct = (Acctitem) list.get(b);
paraname = acct.getACCTITEMTYPENAME();
paravalue = acct.getACCTITEMCHARGE();
}
int dian = paraname.indexOf("、"); //判断是否缩进。
if (dian == -1) {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font\"> ").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
} else {
sb.append(
"<td align=\"left\" bgcolor=\"#FFFFFF\" class=\"font3\">").
append(paraname).append(
"</td><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"font\">").
append(paravalue).append("</td>");
}
}
k++;
}
sb.append("</tr>");
m++;
}
sb.append("<tr><TD class=\"font\" align=\"center\" bgcolor=\"#FFFFFF\" >本月费用合计</TD> <TD class=\"font\" align=\"center\" colspan=\"5\" bgcolor=\"#FFFFFF\">").
append(customerorderbill.getBILLCHARGE()).append("元</TD></tr></table><table id=\"sortTable3\" width=\"540\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#CCCCCC\" class=\"a\"><tr><TD class=\"font\" align=\"center\" colspan=\"6\">通信量信息</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">本地通话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">国内长话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">国际长话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">台港澳长话时长<br>(分钟)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">点对点短信<br>(条)</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">宽带上网时长<br>(小时)</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">");
sb.append(customerorderbill.getBDDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getGNDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getGJDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTGODURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getSMSDURATION()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getNETDURATION());
sb.append("</TD></tr><tr><TD class=\"font\" align=\"center\" colspan=\"6\">积分信息(分)</TD></tr><tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">本期新增<br>A</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">上期末积余<br>B</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">本期使用<br>C</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\">本期末积余<br>D=A+B-C</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\"> </TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\" width=\"90\"> </TD></tr>");
sb.append(
"<tr><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTACHARGECNT()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getPECHARGECNT()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTTCHARGECNT()).append(
"</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\">").
append(customerorderbill.getTECHARGECNT()).append("</TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\"> </TD><TD class=\"font\" align=\"center\" bgcolor=\"#fafafa\"> </TD></tr>");
sb.append("<tr><TD class=\"font\" align=\"center\" colspan=\"6\" bgcolor=\"#fafafa\">注:本积分统计至上月底,后付费用户未缴费部分的消费积分因未激活,不包含在上述积分中</TD></tr></table></td></tr>");
sb.append("<tr><td align=\"left\"><img src=\"cid:IMG2\" width=\"150\" height=\"30\" border=\"0\"></td><td align=\"right\"><img src=\"cid:IMG3\" width=\"150\" height=\"30\" border=\"0\"></td></tr></table>");
content = sb.toString();
发表评论
-
java中serializable是什么
2012-04-27 10:02 0一个对象序列化的接口,一个类只有实现了Serializab ... -
Java获取本地IP
2012-04-26 17:36 925import java.net.*; pub ... -
Swing中可多选下拉框的简单实现
2011-07-08 11:00 8579实现可多选下拉框需要写三个类: MyComboBox ... -
我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)
2011-07-07 15:10 960[注意]清在回复之前认真地看一下我的帖子,结合你的实际项目经验 ... -
选择Hibernate还是iBatis?
2011-07-07 15:05 1030选择Hibernate还是iBATIS都有它的道理: Hi ... -
通过 JAVA SWING 看透 MVC 设计模式[组图]
2011-07-05 12:42 1159一个好的用户界面(GUI) ... -
Swing MVC 结构
2011-07-05 10:03 1651MVC 是 Model-View-Controller 的简称 ... -
JTree放入JSplitPane范例
2011-07-02 14:58 1195范例1 import javax.swing.JFrame; ... -
STRUTS的struts--config.xml详解
2011-06-16 15:42 197201.<?xml version="1.0&q ... -
Proxool连接池实现
2011-06-16 11:13 965首先从 http://proxool.sourceforg ... -
<c:out value="${}"/>|JSTL标签|标签库和EL
2011-04-28 17:15 1308这是JSTL标签的用法 JST ... -
Spring MVC 入门
2011-04-15 14:07 847这篇文章将教你快速地上手使用 Spring 框架. 如果你 ... -
DispatcherServlet定义档
2011-04-15 10:11 1245DispatcherServlet预设使用servle ... -
Velocity用法
2011-03-31 15:38 14441、"#"用来标识Velocity的脚本语 ... -
学习Spring之九:AOP in Spring
2011-03-15 22:27 825Spring IoC和 Spring AOP组合,一起形成了S ... -
web缓存服务器
2011-01-28 11:25 1279什么是web缓存服务器 无论企业有多大,Web缓存都有助于优 ... -
JEECMS3.0.2资料
2011-01-28 09:17 912http://jeecms.iteye.com/blog/85 ... -
PDFTable表格生成PDF
2010-06-02 09:28 2738package com.xishui.action; ... -
itext学习之表格pdftable (转载)
2010-06-02 09:26 1567一个最基本的PdfPTable的例子 package ... -
JavaScript 实现模态对话框 源代码大全
2010-05-31 13:11 1562首先,来说一下对话 ...
相关推荐
这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、HTML和包含附件的邮件,以及在实际应用中需要注意的配置步骤。 1. *...
### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...
在使用JavaMail发送邮件前,你需要在项目中引入相关的依赖包。在描述中提到的"javamail"可能是指JavaMail的jar包,这是进行邮件操作的基础。确保你的项目已包含以下两个关键的JavaMail库: 1. `javax.mail-api.jar`...
这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...
下面是一个简单的JavaMail发送邮件的步骤: 1. **导入必要的库**:首先,在项目中导入`mail.jar`和`activation.jar`,确保编译和运行时能够访问到这些库。 2. **配置邮件会话**:创建一个`Properties`对象,设置...
在这个例子中,我们将详细探讨如何使用JavaMail发送邮件,包括SMTP认证、添加附件以及发送HTML内容的邮件。 首先,为了使用JavaMail API,我们需要引入相应的库。在这个例子中,`javamail`和`JAF`(JavaBeans ...
8. **使用JavaMail发送HTML邮件**:通过设置`MimeMessage`的`setContent()`方法,可以发送包含HTML的邮件。 ```java message.setContent("<h1>HTML邮件标题</h1><p>这是HTML邮件正文。</p>", "text/html;charset=...
下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送...以上就是使用JavaMail发送邮件的详细过程,以及与文本编辑器KindEditor的集成方式。在开发过程中,记得根据具体需求调整和优化代码,以满足不同的业务场景。
JavaMail API 是一个用于发送、接收电子邮件的标准接口集合,它支持多种协议(如 SMTP、IMAP 和 POP3),使得 Java 应用程序能够轻松地发送和接收电子邮件。 #### 二、发送 HTML 格式的邮件 在实际应用中,经常需要...
总的来说,"Android使用javamail发送邮件"这个主题涵盖了Android平台上利用JavaMail API实现邮件发送的基本流程和注意事项,包括设置SMTP服务器、构建邮件消息、处理附件以及可能的安全性和用户体验优化。...
通过解析给定文件的标题、描述、标签及部分内容,我们可以深入探讨javamail发送与接收邮件的详细教程,以及如何利用JavaMail API实现邮件功能。 ### javamail发送、接收邮件 JavaMail API是由Sun Microsystems开发...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对...
下面,我们将深入探讨使用JavaMail发送邮件的实例。 首先,确保你的项目中已经包含了JavaMail的相关依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,对于Maven,可以在pom.xml文件中...
这个“javaMail发送邮件依赖的jar包源码整理”提供了关于如何使用 JavaMail 发送邮件以及相关库的源代码,这对于理解其工作原理和自定义功能非常有帮助。 在JavaMail中,主要涉及以下几个核心组件: 1. **JavaMail...
这个“完整的javamail发送邮件源码”提供了一种直接可用的解决方案,帮助开发者快速集成邮件发送功能到他们的项目中。以下是对JavaMail核心知识点的详细解析: 1. JavaMail API:JavaMail API 是一组用于处理邮件的...
使用JavaMail发送邮件的基本步骤如下: 1. **导入依赖**: 首先,你需要将上述提到的JAR文件添加到项目的类路径中,确保Java程序可以访问这些库。 2. **配置属性**: 创建一个`Properties`对象,设置邮件服务器的...
javaMail
这个示例将详细介绍如何在Java应用程序中使用JavaMail发送邮件。 首先,我们需要引入JavaMail相关的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId> ...