菜鸟求高手

ar 2011-06-18 04:55:51
今天做了一个java的发邮件的小例子,,
javax.mail.MessagingException: No MimeMessage content
一直报这个错,是什么意思?
求高手 !

<%
try{
String tto=request.getParameter("to");//获取收件人地址
String ttitle=request.getParameter("title");
String emailtype=request.getParameter("emailtype");
String tcontent=request.getParameter("contect");
String fj1=request.getParameter("fj1");
String fj2=request.getParameter("fj2");
String fj3=request.getParameter("fj3");//获取附件3
//
Properties props=new Properties();
props.put("mail.smtp.host","smtp.qq.com");
props.put("mail.smtp.auth","true");
Session s=Session.getInstance(props);
s.setDebug(true);
//
MimeMessage message=new MimeMessage(s);
//发件人地址
InternetAddress from=new InternetAddress("158590269@qq.com");
message.setFrom(from);
//收件人地址
InternetAddress to=new InternetAddress("362000053@qq.com");
message.setRecipient(Message.RecipientType.TO,to);
message.setSubject(ttitle);
message.setSentDate(new Date());

Multipart mm=new MimeMultipart();
BodyPart mdp=new MimeBodyPart();

mdp.setContent(tcontent,emailtype+";charset=UTF-8");
mm.addBodyPart(mdp);

/*附件1
mdp=new MimeBodyPart();
DataHandler dh=new DataHandler(fj1,"text/plain;charset=UTF-8");
mdp.setFileName("text.txt");
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);

//附件2*/

Transport transport=s.getTransport("smtp");
transport.connect("smtp.qq.com","158590269","pswweet123");
transport.sendMessage(message,message.getAllRecipients());
transport.close();

}
catch (Exception ee){
out.println(ee.toString());
}
%>
...全文
202 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Luciferoffans 2011-06-22
  • 打赏
  • 举报
回复
public boolean sendEmail(Map<String, String> data) {
// 创建Properties 对象
Properties props = System.getProperties();
props.put("mail.smtp.host", Constants.HOST); // 全局变量
props.put("mail.smtp.auth", "true");

// 创建邮件会话
Session session = Session.getDefaultInstance(props,
new Authenticator() { // 验账账户
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(Constants.USERNAME,
Constants.PASSWORD);
}
});

try {
// 定义邮件信息
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(Constants.FROM));
message.addRecipient(
Message.RecipientType.TO,
new InternetAddress(
// 这里可以添加多个目的用户
data.get(Constants.EMAIL_TO)
)
);
// 添加邮件发送时间(不知道体现在哪儿)
message.setSentDate(new Date());
// 要编码,否则中文会出乱码,貌似这个方法是对数据进行了
//("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=")形势的包装
message.setSubject(MimeUtility.encodeText(data.get(Constants.EMAIL_SUBJECT), "gbk", "B"));

MimeMultipart mmp = new MimeMultipart();
MimeBodyPart mbp_text = new MimeBodyPart();
// "text/plain"是文本型,没有样式,
//"text/html"是html样式,可以解析html标签
mbp_text.setContent(data.get(Constants.EMAIL_TEXT),
"text/html;charset=gbk");
mmp.addBodyPart(mbp_text); // 加入邮件正文

// 处理附件,可以添加多个附件
if (data.get(Constants.EMAIL_ATTACHMENT) != null) {
String[] files = data.get(Constants.EMAIL_ATTACHMENT).split(",");
if (files.length != 0) {
for (String file : files) {
MimeBodyPart mbp_file = new MimeBodyPart();
FileDataSource fds = new FileDataSource(file);
mbp_file.setDataHandler(new DataHandler(fds));
mbp_file.setFileName(MimeUtility.encodeText(fds.getName(), "gbk", "B"));
mmp.addBodyPart(mbp_file);
}
}
}
message.setContent(mmp);
// message.setText(data.get(Constants.EMAIL_TEXT));

// 发送消息
// session.getTransport("smtp").send(message); //也可以这样创建Transport对象
Transport.send(message);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
ar 2011-06-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yljames 的回复:]

mdp.setContent(tcontent,emailtype+";charset=UTF-8");
是(content,emailtype+";charset=UTF-8");
这是第一个错
[/Quote]

tcontent是我自己的变量啊...
ar 2011-06-22
  • 打赏
  • 举报
回复
全是高手 ,我回去要试试哈
zhangqinhappy 2011-06-21
  • 打赏
  • 举报
回复
缺少包吗?
ar 2011-06-21
  • 打赏
  • 举报
回复
顶顶
ar 2011-06-21
  • 打赏
  • 举报
回复
嘿嘿..
原来 2011-06-21
  • 打赏
  • 举报
回复
transport.connect("smtp.qq.com","158590269","pswweet123");

这个协议可能是pops.qq.com 你换下试试,163的就是pop3的协议
,或者imap4
eric0701 2011-06-21
  • 打赏
  • 举报
回复
先回再看
原来 2011-06-21
  • 打赏
  • 举报
回复
mdp.setContent(tcontent,emailtype+";charset=UTF-8");
是(content,emailtype+";charset=UTF-8");
这是第一个错
  • 打赏
  • 举报
回复
密码泄露 了。QQ密码。。。哎。。你摆明了告诉我们QQ密码啊?
CSDW 2011-06-20
  • 打赏
  • 举报
回复
楼主QQ密码不正确吧。
ar 2011-06-20
  • 打赏
  • 举报
回复
哎哎哎
zjt321 2011-06-19
  • 打赏
  • 举报
回复
顶一下!!!!!
悠忧虫 2011-06-19
  • 打赏
  • 举报
回复
少了message.setContent(mm);
淫生杯具 2011-06-19
  • 打赏
  • 举报
回复
是不是要加一句mimeMessage.setHeader( "Content-Type ", "text/html "); 这个?
keketian521 2011-06-18
  • 打赏
  • 举报
回复
顶一下!!!!!
bjvfubj 2011-06-18
  • 打赏
  • 举报
回复
顶下,接分
ar 2011-06-18
  • 打赏
  • 举报
回复
自己顶

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧