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

如何在发送电子邮件时禁用控制台上的Java邮件跟踪

司空修贤
2023-03-14

下面是我发送电子邮件的代码:

    public void sendMail() 
{
    try
    {
        // Propiedades de la conexión
        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.port", SMTP_PORT);
        props.put("mail.smtp.auth", "true");

        Authenticator auth = new SMTPAuthenticator();
        Session mailSession = Session.getDefaultInstance(props, auth);

        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        Multipart multipart = new MimeMultipart("alternative");

        BodyPart text = new MimeBodyPart();
        text.setContent(mailMessage,"text/html; charset=UTF-8");

        multipart.addBodyPart(text);

        message.setContent(multipart);

        if(friendlyName != null){
            //String send = friendlyName + " <" + sender + ">";
            message.setFrom(new InternetAddress(sender, friendlyName)); 
        }else{
            message.setFrom(new InternetAddress(sender));
        }

        message.setSubject(subject,"UTF-8");
        message.addRecipient(Message.RecipientType.TO,
                new InternetAddress(receiver));

        transport.connect();
        transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
        transport.close();


    }catch (Exception e) {
        // TODO: handle exception
    }

}

当我发送电子邮件时,我会在控制台(或catalina.out)上得到以下输出:

>>>>发送数据EHLO XXXXXX<<<<<<

>>>>发送数据身份验证登录<<<<<<

>>>>发送数据xxxxxxxxxxxxxxxxxxxxxxxxxx<<<<<

>>>>发送数据XXXXXXXXXXXXXXXXXX<<<<<

>>>>发送数据邮件的来源:<<<<<

>>>>将数据RCPT发送到:<<<<<<

>>>>发送数据数据<<<<<

>>>>>发送数据<<<<<<

>>>>正在发送数据。<<<<<

>>>>发送数据退出<<<<<<

如何禁用此输出?我的catalina.out长得太快了。Setdebug(false)方法不能解决我的问题。

共有2个答案

饶承宣
2023-03-14

它与setdebug方法无关!
我使用的是javax.mail库的1.40版本,遇到了完全相同的问题。在SMTPTransport类中有这段system.out.println(“>>>>>发送数据”+data+“<<<<<”);代码行,它与调试日志无关,并且总是将其数据写入控制台中!

只需获取库的1.5版本,问题就会得到解决。
您可以从Maven Repository中获取它。

何浩荡
2023-03-14

在spring,这对我很管用:

    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">false</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">false</prop>
        </props>
    </property>

使用版本1.4.7+进行了测试

 类似资料:
  • 问题内容: 我已经使用JMS在Web应用程序中成功发送了电子邮件,但是结果仅以纯文本显示。我希望内容能够显示html。我该怎么做?这大致就是我所拥有的: 问题答案: 根据Javadoc,在需要时,这些设置将默认的mime类型设置为。而是使用代替。

  • 我已经成功创建了PDF文件,它存储在内部storage/app_name/files/xyz.PDF中,现在我只想在Gmail的附件中分享那个PDF......更新:在调试器中获取错误“源代码与字节码不匹配” 正在获取异常文件:///storage/emulated/0/storage/emulated/0/android/data/com.example.app_name/files/s.pdf

  • 问题内容: 我正在尝试使用Java发送电子邮件: 我收到错误消息: 此代码可以发送电子邮件吗? 问题答案: 户名+密码不再是推荐的解决方案。这是因为 我尝试了此操作,Gmail向该代码中用作用户名的电子邮件发送了一封电子邮件,其中说我们最近阻止了你的Google帐户的登录尝试,并将我定向到此支持页面:support.google.com/accounts/answer/6010255因此它看起来很

  • 我正试图通过console/cron使用CakePHP 1.3电子邮件组件发送电子邮件。电子邮件被发送出去了 通过表单完成后,电子邮件将与附件一起成功发送。我已经尝试添加了$this- 我的代码如下: 所以,基本上我的问题是,当我通过控制台/cron运行外壳脚本时,我如何获得附件发送的电子邮件。 提前谢谢你。

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

  • 当使用Azure Logic App Office 365 Outlook连接器-“发送电子邮件”时,是否有方法确定电子邮件是否已实际送达收件人,以便根据失败采取特定措施? 我在连接器中使用了无效的电子邮件ID,但发送电子邮件的操作显示为成功,即使电子邮件未送达。为了确认这是一个无效的电子邮件ID,我从Outlook向该无效电子邮件ID发送了电子邮件,并收到了一封未送达的电子邮件。 在“发送电子邮