Java отправляет Mutliple Files вложение в mailgun - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь отправить электронное письмо с помощью mailgun и прикрепить к нему два или более файлов:

public static JsonNode sendComplexMessage() throws UnirestException {

        HttpResponse<JsonNode> request = Unirest.post("https://api.mailgun.net/v3/" + YOUR_DOMAIN_NAME + "/messages")
                .basicAuth("api", API_KEY)
                .queryString("from", "Excited User <USER@YOURDOMAIN.COM>")
                .queryString("to", "alice@example.com")
                .queryString("cc", "bob@example.com")
                .queryString("bcc", "joe@example.com")
                .queryString("subject", "Hello")
                .queryString("text", "Testing out some Mailgun awesomeness!")
                .queryString("html", "<html>HTML version </html>")
                .field("attachment", new File("/temp/folder/test.txt"))
                .asJson();

        return request.getBody();

Этот пример из Mailgun Docs, но он отправляет только один файл. Мне нужно отправить несколько писем.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

вместо размещения одного файлового объекта, поместите массив списков файлов, и он будет работать так:

.field("attachment", Arrays.asList(file1,file2))

вы можете создать список, перебрать его по циклу и затем отправить его

List<File> listFiles=new ArrayList<>();
// fill it

.field("attachment", listFiles)
0 голосов
/ 15 сентября 2018

Вы можете снова использовать .field("attachment", new File("FILE_NAME")), чтобы отправить еще одно вложение, как показано ниже:

public static JsonNode sendComplexMessage() throws UnirestException {
    HttpResponse<JsonNode> request = Unirest.post("https://api.mailgun.net/v3/" + YOUR_DOMAIN_NAME + "/messages")
                    .basicAuth("api", API_KEY)
                    .queryString("from", "Excited User <USER@YOURDOMAIN.COM>")
                    .queryString("to", "alice@example.com")
                    .queryString("cc", "bob@example.com")
                    .queryString("bcc", "joe@example.com")
                    .queryString("subject", "Hello")
                    .queryString("text", "Testing out some Mailgun awesomeness!")
                    .queryString("html", "<html>HTML version </html>")

                    // attaching test.txt and test2.txt files
                    .field("attachment", new File("/temp/folder/test.txt"))
                    .field("attachment", new File("/temp/folder/test2.txt"))

                    .asJson();
}
...