С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
Левиафам
36 / 31 / 12
Регистрация: 31.05.2012
Сообщений: 576
1

Отправка сообщений на почту

24.08.2017, 14:03. Просмотров 444. Ответов 5
Метки нет (Все метки)

Всем привет! У меня 2 вопроса:

1) хочу передать ссылку для скачивания файла, а не сам файл
2) нужно чтобы ссылка была действительно в течении заданного времени

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

вот что я имею на данный момент:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
....................................
  JavaMailSender mailSender = context.getBean("mailSender", JavaMailSender.class);
 
            Multipart multipart = new MimeMultipart();
            BodyPart messageBodyPart = new MimeBodyPart();
 
            String filename = "/home/nex/posts/arhive/400.tar";
            DataSource source = new FileDataSource(filename);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(filename);
            multipart.addBodyPart(messageBodyPart);
 
            MimeMessage mimeMessage = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "utf-8");
            mimeMessage.setContent(multipart);
            helper.setTo("dmcse@mail.ru");
            helper.setSubject("Ссылка для скачивания");
            helper.setFrom("dmcse@mail.ru");
            
                mailSender.send(mimeMessage);
................ .................
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2017, 14:03
Ответы с готовыми решениями:

Отправка формы на почту
Итак, сразу говорю: я в Java ни в зуб ногой. Но неожиданно по работе возникла...

Клиент-серверное приложение отправка сообщений
Помогите разобраться создаю клиент-серверное приложение отправка сообщений. ...

Отправка сообщений всем клиентам
Здравствуйте. Создал многопоточный сервер, но никак не могу разобраться с тем,...

Отправка сообщений на почту
Добрый день! Была поставлена задача написать программу, которая будет...

Отправка сообщений на почту
Создаю приложение которое отправляет сообщение на почту. вот код программы....

5
Любопытный
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
25.08.2017, 09:52 2
Генерируйте строку ключ которая будет ассоциироваться с требуемым файлом, отправляйте ссылку с этим ключем в письме.
При переходе по ссылке проверяйте, валиден ли этот ключ, если валиден - отдавайте файл.
По определенному таймауту удаляйте ключ из памяти.

В общем виде так.
1
Левиафам
36 / 31 / 12
Регистрация: 31.05.2012
Сообщений: 576
25.08.2017, 19:00  [ТС] 3
Цитата Сообщение от Любопытный Посмотреть сообщение
Генерируйте строку ключ которая будет ассоциироваться с требуемым файлом, отправляйте ссылку с этим ключем в письме.
При переходе по ссылке проверяйте, валиден ли этот ключ, если валиден - отдавайте файл.
По определенному таймауту удаляйте ключ из памяти
а вот как ссылку сгенерить??......если передать html и прописать просто что то вроде <href="путь к файлу" download> то когда поступает сообщение я нажимаю на ссылку и не могу перейти на загрузку
0
reisal78
907 / 657 / 221
Регистрация: 28.04.2013
Сообщений: 1,864
25.08.2017, 20:14 4
Левиафам,
Java
1
2
3
4
5
6
7
8
 @GetMapping("/files/{filename:.+}")
    @ResponseBody
    public ResponseEntity<Resource> serveFile(@PathVariable String filename) {
 
        Resource file = storageService.loadAsResource(filename);
        return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION,
                "attachment; filename="" + file.getFilename() + """).body(file);
    }
1
Левиафам
36 / 31 / 12
Регистрация: 31.05.2012
Сообщений: 576
25.08.2017, 21:20  [ТС] 5
а можно пояснить немного?

Цитата Сообщение от reisal78 Посмотреть сообщение
{filename:.+}
что это? как работает?

Цитата Сообщение от reisal78 Посмотреть сообщение
Resource
что за класс?

Цитата Сообщение от reisal78 Посмотреть сообщение
"attachment; filename="" + file.getFilename() + """
зачем все эти стринги???

Добавлено через 17 минут
разобрался вроде...спасибо большое

Добавлено через 6 минут
Цитата Сообщение от Любопытный Посмотреть сообщение
Генерируйте строку ключ которая будет ассоциироваться с требуемым файлом, отправляйте ссылку с этим ключем в письме.
При переходе по ссылке проверяйте, валиден ли этот ключ, если валиден - отдавайте файл.
По определенному таймауту удаляйте ключ из памяти.
В общем виде так.
я тут подумал а что если я хочу к примеру чтобы файлы были доступны в течении 3-х дней, то мне можно просто при скачивании брать текущую дату и сравнить с датой создания ссылки
0
Любопытный
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
25.08.2017, 23:42 6
Левиафам,
Можно создать класс, который будет включать в себя строку с ключем, и времененм генерации.
Этот класс использовать как ключ в Мапе, адрес файла как значение.
В этом случае можно будет с какой-то периодичностью проверять мапуи удалять истекшие ключи.
Не забудьте переопределить hashCode и equals у этого класса, что бы они задействовали только строку без даты,
тогда можно будет обеспечить быстрый поиск в мапе по ключу.
0
25.08.2017, 23:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2017, 23:42

Отправка сообщений на почту
Добрый день. Подскажите пожалуйста а как можно отправить сообщение на почту...

Отправка сообщений на почту
Здравствуйте. Подскажите пожалуйста что не так в коде. Программа...

Отправка сообщений на почту
Подскажите, если на сайте есть некая форма для отправки сообщений &lt;form...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru