Почему сервлет java прикрепляет 2 файла к электронной почте, но оба одинаковы?
Я рассылаю электронные письма, используя javax.mail
вот мой метод прикрепления
private static void addAttachment(MimeBodyPart messageBodyPart, Multipart multipart, String fileName, File fileToAttach) throws MessagingException{
DataSource source = new FileDataSource(fileToAttach);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
}
я использую mysql, чтобы установить имена файлов и запрашивать файлы из URL, чтобы загрузить, как это
rs = st.executeQuery("SELECT url, id, name FROM db WHERE surl != '' LIMIT 2 ");
while(rs.next()){
String fileName = rs.getString("name") + rs.getString("id") + ".png";
out.println(rs.getString("url"));
url = new URL(rs.getString("url"));
f = new File("C:\\Users\\Desktop\\asAttach"+ rs.getString("id") +".png");
FileUtils.copyURLToFile(url, f);
addAttachment(messageBodyPart, multipart, fileName, f);
}
они продолжают прикреплять два файла, но оба одинаковы.
1 ответ
Вот как я получил его на работу.
private static void addAttachment(Multipart multipart, String fileName, String filePath) throws MessagingException{
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filePath);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
}
я не дал метод MimeBodyPart.
вот как я это использовал.
URL url = new URL(rs.getString("url"));
File f = new File("C:\\Users\\Desktop\\asAttach"+ rs.getString("id") +".png");
FileUtils.copyURLToFile(url, f);
addAttachment(multipart, fileName, f.toString());
Вы можете использовать это в цикле и прикрепить как можно больше файлов.