Add mail attachment from url
To add a mail attachment from a URL, you can use the addAttachment()
method of the Message
class in JavaMail API. Here's an example:
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
public class AddAttachmentFromUrl {
public static void main(String[] args) throws Exception {
// Create a new MimeMessage object
MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
// Set the sender and recipient
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
// Set the subject
message.setSubject("Test email with attachment");
// Create a URL object for the attachment
URL url = new URL("https://example.com/attachment.pdf");
// Create an input stream from the URL
InputStream inputStream = url.openStream();
// Add the attachment to the message
message.addAttachment("attachment.pdf", inputStream, "application/pdf");
// Send the email
Transport.send(message);
}
}
In this example, we create a new MimeMessage
object and set the sender, recipient, and subject. We then create a URL
object for the attachment and an InputStream
object from the URL using the openStream()
method. Finally, we add the attachment to the message using the addAttachment()
method, specifying the attachment name, input stream, and MIME type.
Note that you need to have the JavaMail API library in your classpath to use this code. You can download the library from the official JavaMail website.
Also, make sure to handle any exceptions that may occur when sending the email, such as network errors or authentication failures.