मैं बड़े अनुलग्नकों के साथ बहुखण्डीय ईमेल बनाने के लिए निम्नलिखित कोड की कोशिश की है:कैसे एंड्रॉयड
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
MimeBodyPart mimeBodyText = new MimeBodyPart();
mimeBodyText.setHeader("Content-Type", "text/html; charset=\"UTF-8\"");
mimeBodyText.setContent(body, "text/html");
Multipart mp = new MimeMultipart();
mp.addBodyPart(mimeBodyText);
if (attachments != null && attachments.size() > 0) {
for (Uri uri : attachments) {
MimeBodyPart mimeBodyAttachment = new MimeBodyPart();
String fileName = UriUtils.getFileName(uri, context);
String mimeType = UriUtils.getMimeType(uri, context);
Log.d(TAG, "Generating file info, uri=" + uri.getPath() + ", mimeType=" + mimeType);
FileInputStream is = UriUtils.generateFileInfo(context, uri, mimeType);
if (is == null) {
throw new MessagingException("Failed to get file for uri=" + uri.getPath());
}
try
{
mimeBodyAttachment.setFileName(fileName);
mimeBodyAttachment.setHeader("Content-Type", mimeType + "; name=\"" + fileName + "\"");
DataSource source = new ByteArrayDataSource(is, mimeType);
mimeBodyAttachment.setDataHandler(new DataHandler(source));
mimeBodyAttachment.setHeader("Content-Transfer-Encoding", "base64");
mimeBodyAttachment.setDisposition(MimeBodyPart.ATTACHMENT);
mp.addBodyPart(mimeBodyAttachment);
} catch (IOException e) {
throw new MessagingException(e.getMessage());
}
}
}
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom(new InternetAddress(from));
mimeMessage.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(recipient));
mimeMessage.setSubject(subject);
mimeMessage.setContent(mp);
Message message = createMessageWithEmail(mimeMessage);
service.users().messages().send(from, message).execute();
कौन सा सुंदर क्या this guide में प्रस्तुत किया है के समान है, लेकिन , जब मैं ~ 5 एमबी से बड़ी फ़ाइल जोड़ने की कोशिश करता हूं, निष्पादन फ़ंक्शन लटकता है और वापस नहीं आता है (मुझे एक त्रुटि या कम से कम एक टाइमआउट की उम्मीद होगी लेकिन यह एक और मुद्दा है)
कुछ खोज के बाद, मैं मुझे लगता है कि मुझे किसी भी तरह upload
अनुरोध (see here) करने की आवश्यकता है,में निम्न API 0 सही दिखता है:
Send send(java.lang.String userId, com.google.api.services.gmail.model.Message content, com.google.api.client.http.AbstractInputStreamContent mediaContent)
दुर्भाग्य से मुझे इसके उपयोग के बारे में कोई दस्तावेज़ या निर्देश नहीं मिला।
जब मैंने संलग्नक को mediaContent
के रूप में कच्चे लगाने की कोशिश की तो मुझे एक त्रुटि मिली कि केवल समर्थित माइम प्रकार message/rfc822
है, इसलिए मैंने MimeBodyPart
लेने का प्रयास किया है, मैं ऊपर for
लूप में बना रहा हूं और इसका उपयोग करता हूं, लेकिन ऐसा लगता है लगाव सिर्फ अनदेखा किया जाता है।
किसी को Gmail client API
और 'अपलोड' अनुलग्नक का उपयोग कैसे करना चाहिए?
आप यह पढ़ कर दी: https://developers.google.com/gmail/api/v1/reference/users/messages/ – pratz9999
@ pratz9999 हां मैंने किया, लेकिन यह http अनुरोध को संदर्भित करता है जबकि मैं क्लाइंट एपीआई के बारे में पूछ रहा हूं जो एपीआई के उपयोग को कम करना चाहिए। – SagiLow
https://github.com/steveholt55/JavaMail-API-Android यह अधिक सहायक होगा – pratz9999