我已经使用Java Mail API在我们小组内发送电子邮件。我知道DataHandler对象又使用FileDataSource来抓取文件并将其作为多部分文件附加。但是,我无法在scala中使用它。有人可以帮我吗?
这里是我的代码:
def createMessage: Message = {
val properties = new Properties()
properties.put("mail.smtp.host", smtpHost)
properties.put("mail.smtp.port",smtpPort)
val session = Session.getDefaultInstance(properties, null)
return new MimeMessage(session)
}
var message: Message = null
message = createMessage
message.setFrom(new InternetAddress(from))
message.setSentDate(new Date())
message.setSubject(subject)
message.setText(content)
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to))
def sendMessage {
Transport.send(message)
}
我可以使用message.sefileName设置附件的文件名,但是如何附加实际文件。例如,在Java中,我们可以达到类似的结果,如下所示:
MimeBodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText(messageText);
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
FileDataSource fdatasource = new FileDataSource(file);
messageBodyPart2.setDataHandler(new DataHandler(fdatasource));
messageBodyPart2.setFileName(fdatasource.getName)
Multipart mpart = new MimeMultipart();
mpart.addBodyPart(messageBodyPart1);
mpart.addBodyPart(messageBodyPart2);
message.setContent(mpart);
答案 0 :(得分:0)
我不知道该邮件API,但是您应该能够像在Java中一样使用Scala在Java中使用Java API。如果您在Java中看到类似的内容:
MimeBodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText(messageText);
您通常希望在Scala中将其翻译为类似的内容:
val messageBodyPart1: MimeBodyPart = new MimeBodyPart()
messageBodyPart1.setText(messageText)
只需以这种方式翻译您发布到Scala的Java代码,它就可以像在Java中一样工作(或不工作)。