मैं एक समस्या पहले से ही आज सुबह हल किया था: Java Mail, sending multiple attachments not workingजावा मेल - अनुलग्नकों && इनलाइन चित्र
इस बार मैं थोड़ी ज्यादा जटिल समस्या है: मैं छवियों के साथ संलग्न फाइल गठबंधन करना चाहते हैं।
import java.io.IOException;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class MailTest
{
public static void main(String[] args) throws AddressException, MessagingException, IOException
{
String host = "***";
String from = "***";
String to = "***";
// Get system properties
Properties props = System.getProperties();
// Setup mail server
props.put("mail.smtp.host", host);
// Get session
Session session = Session.getDefaultInstance(props, null);
// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Hello JavaMail");
// Handle attachment 1
MimeBodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.attachFile("c:/Temp/a.txt");
// Handle attachment 2
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
messageBodyPart2.attachFile("c:/Temp/b.txt");
FileDataSource fileDs = new FileDataSource("c:/Temp/gti.jpeg");
MimeBodyPart imageBodypart = new MimeBodyPart();
imageBodypart.setDataHandler(new DataHandler(fileDs));
imageBodypart.setHeader("Content-ID", "<myimg>");
imageBodypart.setDisposition(MimeBodyPart.INLINE);
// Handle text
String body = "<html><body>Elotte<img src=\"cid:myimg\" width=\"600\" height=\"90\" alt=\"myimg\" />Utana</body></html>";
MimeBodyPart textPart = new MimeBodyPart();
textPart.setHeader("Content-Type", "text/plain; charset=\"utf-8\"");
textPart.setContent(body, "text/html; charset=utf-8");
MimeMultipart multipart = new MimeMultipart("mixed");
multipart.addBodyPart(textPart);
multipart.addBodyPart(imageBodypart);
multipart.addBodyPart(messageBodyPart1);
multipart.addBodyPart(messageBodyPart2);
message.setContent(multipart);
// Send message
Transport.send(message);
}
}
जब मैं Gmail हर चीज में ईमेल खोलने ठीक है: मैं दो संलग्नक है, और छवि मेल की सामग्री में प्रदर्शित किया जाता है (img टैग में)।
समस्या थंडरबर्ड और राउंडक्यूबिक वेबमेल के साथ है: छवि की तरह दिखने वाला प्रत्येक व्यक्ति गायब है और अटैचमेंट के रूप में इसे नीचे प्रदर्शित कर रहा है।
मैं यह काम कैसे कर सकता हूं?
माइक्रोसॉफ्ट आउटलुक 2010 अब इनलाइन-छवियों को अनुमति नहीं देता है! क्या यह आपके लिए एक बड़ी समस्या है? –
वैसे मैं Outlook का उपयोग नहीं कर रहा था लेकिन थंडरबर्ड। मल्टीपार्ट को "संबंधित" से "मिश्रित" में बदलने से पहले यह काम कर रहा था। Pls। जुड़े हुए स्टैक ओवरफ्लो प्रश्न देखें। – dbalakirev
इसलिए मुझे इसका उपयोग करके हल किया गया: http://static.springsource.org/spring/docs/1.2.x/reference/mail.html वसंत पृष्ठभूमि में चाल चल रहा है। लेकिन मैं सवाल बंद नहीं कर सकता क्योंकि मेरा प्रतिनिधि पर्याप्त नहीं है। – dbalakirev