发送电子邮件(Java)

时间:2012-07-11 09:56:02

标签: java

按下按钮后,下面的代码会立即打开Outlook电子邮件。 有没有办法自动将文件附加到邮件以及可能的主题?

public void onSubmit() {
            try {
                Desktop.getDesktop().browse(new URI("mailto:username@domain.com"));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }       
    }

我尝试将桌面行更改为此。这有用吗?它没有编译:

                    Desktop.getDesktop().browse(new URI('mailto:username@domain.com?subject=New_Profile&body=see attachment&attachment="xyz.xml"'));

6 个答案:

答案 0 :(得分:2)

Desktop desktop = Desktop.getDesktop(); 
    String message = "mailto:username@domain.com?subject=New_Profile&body=seeAttachment&attachment=c:/Update8.txt"; 
    URI uri = URI.create(message); 
    desktop.mail(uri); 

您无法手动将任何内容自动附加到电子邮件中。

答案 1 :(得分:1)

不,无法附加文件。您可以指定主题和正文。

http://skm.zoomquiet.org/data/20100419224556/index.html

顺便说一句,你不是通过Java发送邮件的。标签和问题不是同一个主题。

答案 2 :(得分:0)

您可以通过以下方式指定主题:

Desktop.getDesktop().browse(new URI("mailto:username@domain.com?subject=My+subject"));

请注意,主题需要进行URL编码。

据我所知,没有通用的方法来添加附件,尽管某些邮件客户端可能有特定于供应商的方式来执行此操作。

答案 3 :(得分:0)

简短的回答是否定的。 Jave不通过手段支持附件,这让我烦恼了2年。

答案很长,你可以使用mapi& amp; jni,但要为受伤的世界做好准备,因为并非所有邮件客户端都是平等的

答案 4 :(得分:0)

答案 5 :(得分:0)

是的,你可以做到。我的下面代码非常完美。使用它

只需调用此函数即可向客户端发送自动电子邮件。 参数“to”是您要向其发送电子邮件的电子邮件地址。

用于附加pdf reffer https://www.tutorialspoint.com/java/java_sending_email.htm

我通常在Maven项目中这样做。如果您正在使用maven项目,则导入以下依赖项。 的 https://mvnrepository.com/artifact/javax.mail/mail/1.4

private void sendMail(String to, String subject, String emailBody) throws MessagingException{
    final String username = "youremail@gmail.com";
    final String password = "emailPassword";

    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.port", "587");

    Session session = Session.getInstance(props,
            new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
    });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("shubham20.yeole@gmail.com"));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(to));
        message.setSubject(subject);
        message.setContent(emailBody, "text/html; charset=utf-8");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

}