当前位置: 首页 > 知识库问答 >
问题:

通过JavaMail发送的纯文本电子邮件以附件形式到达

寿元白
2023-03-14

我已经编写了一个代码通过java mail API发送,所有的工作都很好,但是我发送的纯文本以可下载附件的形式被收件人接收,而不是纯文本消息。

我不知道为什么会这样。下面给出的是我运行时的代码及其输出。

        String toEmail=request.getParameter("email");
        String subject=request.getParameter("subject");
        String message=request.getParameter("message");

        String fromEmail="suyash.tilhari12@gmail.com";
        String username="suyash.tilhari12";
        String password="********";

        mailSender.sendEmail(fromEmail, username, password, toEmail, subject, message);
   public void sendEmail(String fromEmail,String username,String password,
            String toEmail,String subject,String  message) 
    {
        try
        {
        Properties props= System.getProperties();
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.fallback", "false");

        Session mailSession = Session.getDefaultInstance(props, null);
        mailSession.setDebug(true);

        Message mailMessage=new MimeMessage(mailSession);
        mailMessage.setFrom(new InternetAddress(fromEmail));
        mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
        mailMessage.setContent(message, "html/text");
        mailMessage.setSubject(subject);

        Transport transport=mailSession.getTransport("smtp");
        transport.connect("smtp.gmail.com",username,password);
        transport.sendMessage(mailMessage, mailMessage.getAllRecipients());
        }
        catch (Exception ex) {
            Logger.getLogger(MailSenderBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}

我使用过Java Mail API、NetBeans IDE、Glassfish服务器、Enterprise Java Bean。

结果如下:

邮件收件人-看,简单的短信是附件的形式。

共有1个答案

萧焱
2023-03-14

@suyash:请尝试以下http://www.tutorialspoint.com/java/java_sending_email.htm链接上的说明。

 类似资料:
  • 我的目标是:通过SMTP发送带有纯文本、文本/html和附件的事务性电子邮件。 我的代码:用JavaMail实现 我的问题是:它在hotmail或outlook上看起来不错。但在gmail上,如果是一封带有电子邮件地址的邮件,它不会正确显示邮件正文。txt附件(如果附件是图像,则可以正常工作) 任何帮助都将不胜感激。 以下是我的原始SMTP输出: 一些截图 只送了一个。附件。消息正文不显示,附件重

  • 我在使用我的公司交换服务器通过Javamail发送电子邮件时遇到了一些问题。我们有一个应用程序通过gmail服务器发送电子邮件没有任何问题,但对于Google策略的一些更改,我们希望使用公司服务器来完成这项工作。我确信会话属性中的问题,但我无法找到使其工作的方法 这是显示日志的错误 javax.mail.MessagingException:无法连接到SMTP主机:mail.company.com

  • 问题内容: 我想将Pdf作为电子邮件附件发送(我正在使用JavaMail API)。我将Pdf(由jasper生成)作为。 这是我用来构造的代码,将其作为附件: 这段代码给我这个错误: 问题答案: 您使用的构造函数用于 解析 传输中的mime部分。 您的第二个示例应该正确。您可以考虑 不要转换为InputStream并返回,这将产生不必要的副本 添加处置(例如 bp.setDisposition(

  • 我在网上看到了很多代码,但它们似乎都遇到了问题。 使用以下功能创建并保存文件: 然而,当运行下面的代码来发送文件时,我一直遇到问题,并建议使用此链接的所有答案https://stackoverflow.com/questions/48117511/exposed-beyond-app-through-clipdata-item-geturi,当打开Gmail时,它说无法附加文件 如果有任何方法可以

  • 我正在使用Azure mobile services后端,我可以通过SendGrid成功地发送电子邮件。但是,每次我尝试添加附件时,它都失败了。我从来没有收到过邮件。经过一点研究,我发现我所需要的只是一个虚拟路径。我修改了路径名,但它仍然不工作。 我想不出为什么会失败。 下面是我的代码:

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送