I want to send dynamically generated excel file programmatically using sendgrid function. Below java program is sending the excel file as an attachment successfully, But It is sending fresh copy (newly generated) of excel file not a file which I like to send. Please let me know Where do I am making mistake ?
public static void main(String[] args) throws IOException, InvalidFormatException {
final String path = "C:\\Users\\src\\testData\\TestData.xlsx";
byte[] bFile = Files.readAllBytes(new File(path).toPath());
Attachments attachments3 = new Attachments();
Base64 x = new Base64();
String imageDataString = x.encodeAsString(bFile);
attachments3.setContent(imageDataString);
attachments3.setType("xlxs");// "application/pdf"
attachments3.setFilename("TestData.xlsx");
attachments3.setDisposition("attachment");
attachments3.setContentId("Banner");
Email from = new Email("[email protected]");
String subject = "Hello World from the SendGrid Java Library!";
Email to = new Email("[email protected]");
Content content = new Content("text/plain", "Hello, Email!");
Mail mail = new Mail(from, subject, to, content);
mail.addAttachments(attachments3);
SendGrid sg = new SendGrid("SG.EJLRKZEvE");
Request request = new Request();
try {
request.setMethod(Method.POST);
request.setEndpoint("mail/send");
request.setBody(mail.build());
Response response = sg.api(request);
System.out.println(response.getStatusCode());
System.out.println(response.getBody());
System.out.println(response.getHeaders());
} catch (IOException ex) {
throw ex;
}
}