以下是我发送电子邮件的代码:
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)上获得此输出:
&gt;&gt;&gt;&gt;&gt;发送数据EHLO xxxxxx&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&gt;&gt;&gt;&gt;&gt;发送数据AUTH LOGIN&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&gt;&gt;&gt;&gt;&gt;发送数据xxxxxxxxxxxxxxxxxxxx&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&gt;&gt;&gt;&gt;&gt;发送数据xxxxxxxxxxxxxx&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&gt;&gt;&gt;&gt;&gt;发送数据MAIL FROM:&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&gt;&gt;&gt;&gt;&gt;发送数据RCPT TO:&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&gt;&gt;&gt;&gt;&gt;发送数据DATA&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&gt;&gt;&gt;&gt;&gt;发送数据&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&lt;&lt;&lt;&lt;&lt;&lt;&gt;&gt;&gt;&gt;&gt;发送数据QUIT&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
如何禁用此输出?我的catalina.out增长太快了。 Setdebug(false)方法无法解决我的问题。
答案 0 :(得分:7)
春天,这对我有用:
<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 +
进行测试答案 1 :(得分:2)
它与setDebug
方法无关!
我使用的是javax.mail库的1.40版,并且遇到了完全相同的问题。 System.out.println(">>>>>Sending data " + data + "<<<<<<");
类中有SMTPTransport
行代码,它与调试日志无关,并且总是在控制台中写入数据!
只需获取库的1.5版本即可解决问题 你可以从Maven repository获得它。