I’m using Microsoft-Graph API version 1.4 and trying to send mail with attachment using following code..
IGraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient(); Message message = new Message(); message.subject = "Meet for lunch?"; ItemBody body = new ItemBody(); body.contentType = BodyType.TEXT; body.content = "The new cafeteria is open."; message.body = body; LinkedList<Recipient> toRecipientsList = new LinkedList<Recipient>(); Recipient toRecipients = new Recipient(); EmailAddress emailAddress = new EmailAddress(); emailAddress.address = "meganb@contoso.onmicrosoft.com"; toRecipients.emailAddress = emailAddress; toRecipientsList.add(toRecipients); message.toRecipients = toRecipientsList; LinkedList<Attachment> attachmentsList = new LinkedList<Attachment>(); FileAttachment attachments = new FileAttachment(); attachments.name = "attachment.txt"; attachments.contentType = "text/plain"; attachments.contentBytes = "SGVsbG8gV29ybGQh"; attachmentsList.add(attachments); message.attachments = attachmentsList; graphClient.me() .sendMail(message,null) .buildRequest() .post();
Ref.Link: Graph-Send-Mail
But, message.attachments requires AttachmentCollectionPage object not LinkedList();
Can anyone help me to send a mail with multiple attachment.
Thanks
Advertisement
Answer
I found the solution to send multiple attachment in a single mail using 1.4.0 version. Checkout the following code…
val address = EmailAddress() address.address = "vivek@domain.com" val recipient = Recipient() recipient.emailAddress = address val message = MyMessage() message.subject = "Test E-Mail" message.body = getItemBody() message.toRecipients = Collections.singletonList(recipient) val att = FileAttachment() att.contentBytes = File("/home/user/file.pdf").readBytes() att.contentType = "text/pdf" att.name = "file.pdf" att.oDataType = "#microsoft.graph.fileAttachment" val att2 = FileAttachment() att2.contentBytes = "hello there! from second file".toByteArray(StandardCharsets.UTF_8) att2.contentType = "text/plain" att2.name = "hi2.txt" att2.oDataType = "#microsoft.graph.fileAttachment" message.addAttachment(att) message.addAttachment(att2) graphClient.me() .sendMail(message,false) .buildRequest() .post();
The above code can be used to send multiple attachments with size less than 4 MB. To send above the limit please refer this.