无法同时发送短信和附件
unable to send both text message and attached file
添加文档文件后无法发送消息
在代码中添加 msg.setFileName()
后 msg.setText()
不起作用。
邮件已成功投递并带有附件,但邮件正文中没有文本。
无法同时发送短信和附件。
下面是我的代码文件-
public static void sendTo(String seniorId,String seniorName){
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.store.protocol", "pop3");
props.put("mail.transport.protocol", "smtp");
final String username = "rptdby@gmail.com";//
final String password = "xxxxxxxxxxxxxxxx";
try{
Session session = Session.getDefaultInstance(props,
new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}});
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress("rptdby@gmail.com"));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(seniorId,false));
msg.setSubject("Suject");
msg.setText("Hi "+seniorName+"Sir"+"\n\nI am in India\nplease find my attached FILE.\n\nthanks\n\ndubey-theHarcourtian");
String filename = "C:\Users\arpit.dubey\Desktop\sysofnI\Myfile.docx";
DataSource source = new FileDataSource(filename);
msg.setDataHandler(new DataHandler(source));
msg.setFileName("MyFile");
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("Message sent.");
}catch (MessagingException e){ System.out.println("Erreur d'envoi, cause: " + e);}
}
您需要将文件添加到 body 部分并将其添加到多部分。我们不应该直接将它添加到消息 header 中。
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
message.setSubject("Testing Subject");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("This is message body");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
String filename = "/Mydocuments/kali/file.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
System.out.println("Sent message successfully....");
添加文档文件后无法发送消息
在代码中添加 msg.setFileName()
后 msg.setText()
不起作用。
邮件已成功投递并带有附件,但邮件正文中没有文本。 无法同时发送短信和附件。
下面是我的代码文件-
public static void sendTo(String seniorId,String seniorName){
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.store.protocol", "pop3");
props.put("mail.transport.protocol", "smtp");
final String username = "rptdby@gmail.com";//
final String password = "xxxxxxxxxxxxxxxx";
try{
Session session = Session.getDefaultInstance(props,
new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}});
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress("rptdby@gmail.com"));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(seniorId,false));
msg.setSubject("Suject");
msg.setText("Hi "+seniorName+"Sir"+"\n\nI am in India\nplease find my attached FILE.\n\nthanks\n\ndubey-theHarcourtian");
String filename = "C:\Users\arpit.dubey\Desktop\sysofnI\Myfile.docx";
DataSource source = new FileDataSource(filename);
msg.setDataHandler(new DataHandler(source));
msg.setFileName("MyFile");
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("Message sent.");
}catch (MessagingException e){ System.out.println("Erreur d'envoi, cause: " + e);}
}
您需要将文件添加到 body 部分并将其添加到多部分。我们不应该直接将它添加到消息 header 中。
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
message.setSubject("Testing Subject");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("This is message body");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
String filename = "/Mydocuments/kali/file.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
System.out.println("Sent message successfully....");