我每天都在JBoss 5.1中运行一个计划任务来发送生日祝福。
邮件内容是HTML,我在邮件中嵌入了图片。
现在我想获得嵌入图像的路径,如何在非servelt环境中获取图像路径。
当然,我可以将图像放在静态位置并访问它们,为此我不想对路径进行硬编码。
图片位于“WebContent / images / birthday.jpg”位置。
答案 0 :(得分:2)
您是如何生成电子邮件内容的?这些也是静态的html文件吗?
如果您要使用简单的静态html文件,则必须对图像路径进行硬编码。没有别的办法了。
您可以编写一个简单的Java应用程序,它作为独立的应用程序(没有任何服务器,servlet等)运行,它将创建电子邮件内容。
如果您愿意,Java代码也可以为您发送电子邮件。
如果您使用java
,这些是您可以做的一些事情您将能够轻松地为多个用户重新设计html内容。
使用属性文件的示例。
创建一个文件ex:“email_template.properties”
在文件中输入以下内容并保存。
image_server = http://www.mywebsite.com
image_folder = /的WebContent /图像/
创建一个jave程序来创建你的html电子邮件,并使用属性文件来生成图像位置。
Properties properties = new Properties();
try
{
properties.load(new FileInputStream("C://email_template.properties")); //specify path here
String sServerLocation = properties.getProperty("image_server");
String sImageFolder = properties.getProperty("image_folder");
StringBuilder strEmail = new StringBuilder();
strEmail.append("<html><body> <img src=\"" + sServerLocation + sImageFolder +"birthday.jsp\""> </body> </html>" );
// Write code to generate complete email dynamically
// write code to send out the email or to save as html file to you machine, where you can send it manually.
} catch(IOException e) { // }
你明白了。使用普通的HTML,你将不得不硬编码 但是,如果您使用简单的Java文件,则可以获得更大的灵活性。
如果您需要代码从java发送电子邮件,请查看此链接 How can I send an email by Java application using GMail, Yahoo, or Hotmail?