我正在尝试开发一个应用程序,其中包含一个用于上传求职者简历的屏幕。我可以看到带有附件的电子邮件已发送到' To' 邮件ID但文档类型被指定为'未知文件类型格式' 。另一件事是因为我使用的是Google Mail提供的功能,所以电子邮件以名称的形式发送已注册的电子邮件ID但不是访客邮件ID。以下是我编写的用于发送电子邮件的代码。请帮助我。谢谢提前。
System.out.println("TLSEmail Start");
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
// props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.port", "465");
//create Authenticator object to pass in Session.getInstance argument
Authenticator auth = new Authenticator() {
//override the getPasswordAuthentication method
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(fromEmail, "wpndththyxgofpmt");
}
};
Session session = Session.getInstance(props, auth);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("ayyapparushi@gmail.com"));
message.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress(toEmail));
System.out.println("Mail Check 2");
message.setSubject(al_JobsList.get(Position).getJobName() + "-" + al_JobsList.get(Position).getJobExp());
System.out.println("Mail Check 3");
BodyPart messageBodyPart;
messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(messagepart, "text/html");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart=new MimeBodyPart();
message.setText(messagepart2);
// Transport.send(message);
String file = emailmsg;
String fileName = name + " resume";
FileDataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
// messageBodyPart.attachFile(file);
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
// multipart.addBodyPart(message);
message.setContent(multipart);
Transport.send(message);
}
答案 0 :(得分:1)
首先清理这些common mistakes。
确保您使用的是官方JavaMail for Android。
JavaMail(实际上,JAF)只知道几种文件类型。您可能需要为其他类型的文件指定MIME类型。使用MimeBodyPart.attachFile method that allows you to specify the type。
使用Gmail(或几乎任何其他电子邮件提供商),您无法以任意用户身份发送邮件。您只能以帐户所有者的身份发送邮件。
答案 1 :(得分:0)
当电子邮件发送给用户时,我找到了关于附件不受支持的文件格式的问题的答案。在移动设备中从文件浏览器中选择文件时,获取路径但未获取文件扩展名.Hence ,在给出文件名时,我们需要附加附加文件的扩展名。因此,当交付时,Google会自动检查文件格式。
String fileName = name + " resume"+".docx";
这条线解决了我的问题。