Получить путь к изображению в не сервлете - PullRequest
0 голосов
/ 01 мая 2011

У меня запланированное задание, которое ежедневно выполняется в JBoss 5.1 для отправки пожеланий на день рождения.

Почтовое содержимое - HTML, и я вставляю изображения в почту.

Теперь я хотелчтобы получить путь к этому изображению для встраивания, как можно было бы получить путь к изображению в среде без сервлетов.

Конечно, я мог бы разместить изображения в статическом месте и получить к ним доступ, для чегоЯ не хочу жестко задавать путь.

Изображение находится в расположении "WebContent / images / birthday.jpg".

1 Ответ

2 голосов
/ 01 мая 2011

Как вы генерируете контент электронной почты?Это также статические HTML-файлы?

Если вы собираетесь использовать простые статические html-файлы, вам придется жестко кодировать пути к изображениям.Другого пути нет.

Вы можете написать простое Java-приложение, которое запускается как отдельное приложение (без каких-либо серверов, сервлетов и т. Д.), Которое будет создавать содержимое электронной почты.

Ява-код также может отправлять вам электронные письма, если вы хотите.

Это некоторые из вещей, которые вы можете сделать, если вы используете java

  • Используйте файлы свойств, чтобы указать расположение изображений.Это файлы, которые содержат простые пары ключ / значение.
  • Вы можете легко создать несколько сообщений электронной почты для разных пользователей с помощью одного и того же шаблона.
  • Вы сможете легко изменить дизайнHTML-контент для нескольких пользователей.
    Пример использования файлов свойств.

  • Создание файла, например: "email_template.properties"
    Введите в файл следующее и сохраните его.

    image_server = http://www.mywebsite.com
    image_folder = / WebContent / images /

  • Создайте программу jave для создания html-письма и используйте файл свойств для генерации изображенияlocation.

    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, перейдите по этой ссылке.1042 * Как отправить электронное письмо с помощью приложения Java, используя GMail, Yahoo или Hotmail?

...