问题描述:
在使用Apache common-email库发送邮件时,如果启用了TLS,可能会收到以下警告信息:
"Could not start TLS: TLS handshake failed"
这可能是由于库未能正确配置TLS导致的。
解决方法:
要解决此问题,需要正确配置库以使用TLS。以下是一个代码示例,演示了如何使用Apache common-email库发送带有TLS的电子邮件。
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class EmailSender {
public static void main(String[] args) {
String host = "smtp.gmail.com";
int port = 587;
String username = "your-email@gmail.com";
String password = "your-password";
String recipient = "recipient-email@example.com";
try {
// Create the email object
Email email = new SimpleEmail();
// Configure the email details
email.setHostName(host);
email.setSmtpPort(port);
email.setAuthenticator(new DefaultAuthenticator(username, password));
email.setStartTLSEnabled(true); // Enable TLS
email.setFrom(username);
email.setSubject("Test Email");
email.setMsg("This is a test email from Apache common-email library.");
email.addTo(recipient);
// Send the email
email.send();
System.out.println("Email sent successfully!");
} catch (EmailException e) {
e.printStackTrace();
}
}
}
在此示例中,我们使用了Gmail的SMTP服务器作为邮件服务器,并启用了TLS。请确保将your-email@gmail.com
和your-password
替换为您自己的Gmail帐户凭据,并将recipient-email@example.com
替换为您要发送邮件的收件人地址。
运行该代码,您应该能够成功发送带有TLS的电子邮件。