2011-05-01 149 views
0

我有一个计划任务,每天在JBoss 5.1中运行,用于发送生日祝福。获取非servlet中的图像路径

邮件内容是HTML,我在邮件中嵌入图像。

现在我想要获取嵌入图像的路径,如何在非servelt环境中获取图像路径。

当然,我可以将图像放在一个静态位置并访问它们,为此我不想硬编码路径。

图像位于“WebContent/images/birthday.jpg”位置。

回答

2

您是如何生成电子邮件内容的?这些也是静态html文件吗?

如果您打算使用简单的静态html文件,您将不得不硬编码图像路径。没有其他办法。

你可以编写一个简单的Java应用程序,它作为一个独立的应用程序运行(没有任何服务器,servlet等),它将创建邮件内容。

如果需要,Java代码也可以为您发送电子邮件。

这些都是你可以做的事情,如果你用java

  • 使用属性文件来指定图像的位置。这些是保存简单键/值对的文件。
  • 您可以使用相同的模板轻松地为不同的用户创建多个电子邮件内容。
  • 您将可以轻松地为多个用户重新设计html内容。
    使用属性文件的示例。

  • 创建文件例如:“email_template.properties”
    在文件中输入以下内容并保存。

    image_server = http://www.mywebsite.com
    image_folder = /的WebContent /图片/

  • 创建一个java的程序来创建你的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. 
    

    }赶上(IOException异常E) {// }

你的想法。使用普通的html你将不得不硬编码。
但是,如果你使用一个简单的java文件,你可以获得更多的灵活性。

如果您需要代码发送来自java的电子邮件,请检查此链接。
How can I send an email by Java application using GMail, Yahoo, or Hotmail?