मैं ब्लॉग पढ़ रहा हूं और कई कार्यान्वयन की कोशिश की है लेकिन अभी भी एक ईमेल से जुड़ी एक छवि प्राप्त करने में असफल रहा है जिसे मैं जावा का उपयोग करके जीमेल के माध्यम से भेज रहा हूं। मैंने सभी जार डाउनलोड किए और GMailSender.java, GMailAuthenticator.java, और JSSEProvider.java को जोड़ा और मैं नियमित ई-मेल को ठीक से भेजने में सक्षम हूं। जिस तरह से मैंने इसे करने का प्रयास किया है, नीचे दिखाया गया है, मध्य भाग के साथ जिसने मुझे उम्मीद की थी कि वह हिस्सा जोड़कर छवि को जोड़ देगा। जब मैं इसे निष्पादित करने का प्रयास करता हूं तो नीचे लॉगकैट पर आउटपुट होता है। निश्चित रूप से मैं कुछ आसान याद कर रहा हूँ। क्या कोई इसे मेरे लिए इंगित कर सकता है? अग्रिम में धन्यवाद।GMailSender के माध्यम से अनुलग्नक के साथ ईमेल भेज रहा है?
public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
/*
// Create your new message part
BodyPart imgPart = new MimeBodyPart();
// Create a related multi-part to combine the parts
MimeMultipart multipart = new MimeMultipart("related");
multipart.addBodyPart(imgPart);
String fileName = "http://.../sampleBarcode.png";
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
if (classLoader == null) {
classLoader = this.getClass().getClassLoader();
if (classLoader == null) {
System.out.println("IT IS NULL AGAIN!!!!");
}
}
DataSource ds = new URLDataSource(classLoader.getResource(fileName));
imgPart.setDataHandler(new DataHandler(ds));
imgPart.setHeader("Content-ID", "<logoimg_cid>");
multipart.addBodyPart(imgPart);
message.setContent(multipart);
*/
if(recipients.indexOf(',') > 0) {
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
}
else message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
}
catch(Exception e){Log.e("EMAIL_ERROR",e.getMessage(), e);}
}
null
java.lang.NullPointerException
at javax.activation.URLDataSource.getContentType(URLDataSource.java:91)
at javax.activation.DataHandler.getContentType(DataHandler.java:218)
...
...
(plus some more)
इसके ठीक काम कर रहा .. thnks है –