diff --git a/appengine/mailgun/src/main/java/com/example/managedvms/mailgun/MailgunServlet.java b/appengine/mailgun/src/main/java/com/example/managedvms/mailgun/MailgunServlet.java index caddf4e05d2..890bf8e0318 100644 --- a/appengine/mailgun/src/main/java/com/example/managedvms/mailgun/MailgunServlet.java +++ b/appengine/mailgun/src/main/java/com/example/managedvms/mailgun/MailgunServlet.java @@ -20,6 +20,7 @@ import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter; +import com.sun.jersey.core.util.MultivaluedMapImpl; import com.sun.jersey.multipart.FormDataMultiPart; import com.sun.jersey.multipart.file.FileDataBodyPart; @@ -38,15 +39,42 @@ public class MailgunServlet extends HttpServlet { private static final String MAILGUN_DOMAIN_NAME = System.getenv("MAILGUN_DOMAIN_NAME"); - private static final String MAILGUN_API_KEY= System.getenv("MAILGUN_API_KEY"); + private static final String MAILGUN_API_KEY = System.getenv("MAILGUN_API_KEY"); @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + String type = req.getParameter("submit"); String recipient = req.getParameter("to"); + ClientResponse clientResponse; + if (type.equals("Send simple email")) { + clientResponse = sendSimpleMessage(recipient); + } else { + clientResponse = sendComplexMessage(recipient); + } + if (clientResponse.getStatus() == 200) { + resp.getWriter().print("Email sent."); + } + } + + private ClientResponse sendSimpleMessage(String recipient) { Client client = Client.create(); client.addFilter(new HTTPBasicAuthFilter("api", MAILGUN_API_KEY)); - WebResource webResource = - client.resource("https://api.mailgun.net/v3/" + MAILGUN_DOMAIN_NAME + "/messages"); + WebResource webResource = client.resource("https://api.mailgun.net/v3/" + MAILGUN_DOMAIN_NAME + + "/messages"); + MultivaluedMapImpl formData = new MultivaluedMapImpl(); + formData.add("from", "Mailgun User "); + formData.add("to", recipient); + formData.add("subject", "Simple Mailgun Example"); + formData.add("text", "Plaintext content"); + return webResource.type(MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, + formData); + } + + private ClientResponse sendComplexMessage(String recipient) { + Client client = Client.create(); + client.addFilter(new HTTPBasicAuthFilter("api", MAILGUN_API_KEY)); + WebResource webResource = client.resource("https://api.mailgun.net/v3/" + MAILGUN_DOMAIN_NAME + + "/messages"); FormDataMultiPart formData = new FormDataMultiPart(); formData.field("from", "Mailgun User "); formData.field("to", recipient); @@ -55,13 +83,8 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOEx ClassLoader classLoader = getClass().getClassLoader(); File txtFile = new File(classLoader.getResource("example-attachment.txt").getFile()); formData.bodyPart(new FileDataBodyPart("attachment", txtFile, MediaType.TEXT_PLAIN_TYPE)); - ClientResponse clientResponse = - webResource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(ClientResponse.class, formData); - if (clientResponse.getStatus() == 200) { - resp.getWriter().print("Email sent."); - } else { - resp.getWriter().print("An error was encountered"); - } + return webResource.type(MediaType.MULTIPART_FORM_DATA_TYPE) + .post(ClientResponse.class, formData); } } // [END example] diff --git a/appengine/mailgun/src/main/webapp/index.html b/appengine/mailgun/src/main/webapp/index.html index d85e8ac6192..3b26f817c78 100644 --- a/appengine/mailgun/src/main/webapp/index.html +++ b/appengine/mailgun/src/main/webapp/index.html @@ -7,7 +7,8 @@
- + +