javamail发送html格式的问题,图片无法正常显示

ben0759 2009-08-01 12:56:18
我在用javamail发送html的时候,发现对于img格式的图片没办法正常发送,可能是路径问题
如果我的img用的是http://xxx.com/img/XXX这样查找就可以正常显示,但是用相对路径就出错。
有没有什么办法解决?
还有,是不是对于css javamail是没办法正常发送的?

还有,我想发送jsp转化成的html,也就是说,我的html是动态生成的,里面有些数据是要链接数据库的,如果直接把这个文件发送出去的话没办法编译,请问大家是怎么做的?
...全文
542 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iskyshop 2009-08-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 ben0759 的回复:]
我在用javamail发送html的时候,发现对于img格式的图片没办法正常发送,可能是路径问题
如果我的img用的是http://xxx.com/img/XXX这样查找就可以正常显示,但是用相对路径就出错。
有没有什么办法解决?
还有,是不是对于css javamail是没办法正常发送的?

还有,我想发送jsp转化成的html,也就是说,我的html是动态生成的,里面有些数据是要链接数据库的,如果直接把这个文件发送出去的话没办法编译,请问大家是怎么做的?
[/Quote]
发送Email时候必须私用绝对的url,如果使用相对路径,到别人邮箱后就会以别人邮箱的URL为基础地址,再加上对应的相对路径,这样图片不存在当然就显示不了了!
jsp生成静态页面,所有的内容都变成绝对URL,就可以发送了,页面中不能使用连接数据库这些代码,那样是肯定打不开的,只有生成了静态页面才可以显示全部数据!
关于生成静态页面,有很多种办法,最常用的是使用模板引擎,也可以使用JSP来生成!给一个参考地址
http://dxwang.javaeye.com/blog/114937
xiaochengfu1 2009-08-02
  • 打赏
  • 举报
回复
学习
ben0759 2009-08-02
  • 打赏
  • 举报
回复
还有吗
xuexijava 2009-08-01
  • 打赏
  • 举报
回复
关注学习加顶
fyjava1984 2009-08-01
  • 打赏
  • 举报
回复
顶一下
平淡面对 2009-08-01
  • 打赏
  • 举报
回复
参考下面的例子:

import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

import java.util.Properties;

class SimpleMail2 {
public static void main(String[] args) throws Exception{
System.out.println("Sending mail...");
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.mymailserver.com");
props.setProperty("mail.user", "myuser");
props.setProperty("mail.password", "mypwd");

Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(true);
Transport transport = mailSession.getTransport();

MimeMessage message = new MimeMessage(mailSession);
message.setSubject("HTML mail with images");
message.setFrom(new InternetAddress("me@sender.com"));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("you@receiver.com"));

//
// This HTML mail have to 2 part, the BODY and the embedded image
//
MimeMultipart multipart = new MimeMultipart("related");

// first part (the html)
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<H1>Hello</H1><img src=\"cid:image\">";
messageBodyPart.setContent(htmlText, "text/html");

// add it
multipart.addBodyPart(messageBodyPart);

// second part (the image)
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource
("C:\\images\\jht.gif");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<image>");

// add it
multipart.addBodyPart(messageBodyPart);

// put everything together
message.setContent(multipart);

transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
}
}
pmlxp 2009-08-01
  • 打赏
  • 举报
回复
帮你顶一下
我也不是很清楚
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在软件开发领域,Java发送邮件是一项常见需求,广泛应用于自动化通知、用户验证以及客户服务等场景。本文将介绍三种Java邮件发送方式,并结合代码示例和参考资料展开实践探讨。 邮件发送主要涉及SMTP和POP3两种协议。SMTP用于将邮件发送至邮件服务器,POP3则用于从邮件服务器接收邮件。此外,还有IMAP协议,但本文主要聚焦于SMTP和POP3。 首先,普通邮件发送通过JavaMail API实现。JavaMail API是Java处理电子邮件的标准库,涵盖发送、接收邮件等功能。发送普通邮件需配置SMTP服务器地址、端口、用户名及密码,接着创建Message对象,设置发件人、收件人、主题和正文,最后利用Transport类的send()方法完成邮件发送。 其次,带附件的邮件发送借助MimeBodyPart类实现。需创建Multipart对象,添加包含正文和附件的MimeBodyPart对象。每个MimeBodyPart要明确MIME类型,并在Multipart中设定顺序。 最后,图文并茂的邮件发送通过HTML内容和图片嵌入实现。HTML邮件使邮件更丰富专业,通过Message对象的setContent()方法传入HTML字符串及MIME类型。嵌入图片时,使用DataSource接口创建数据源,通过CID在HTML中引用图片。 相关文档和参考资料对理解邮件发送至关重要。SMTP_百度百科.mht和POP3_百度百科.mht详细介绍这两种协议,助你掌握工作原理和配置细节。邮件笔记.doc涵盖发送邮件的注意事项和常见问题,而图文并茂正文(样式不正常).jpg展示邮件显示效果。 实际应用中,正确配置邮件服务器参数(如SSL/TLS加密、端口号等)极为关键。为避免垃圾邮件过滤器拦截,邮件内容需

81,122

社区成员

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

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