发送java邮件的更好方式,除了传统SMTP邮件还有其他选择吗?
对于我的一个j2ee应用程序,我使用SMTP发送邮件 我的代码如下所示发送java邮件的更好方式,除了传统SMTP邮件还有其他选择吗?,java,email,smtp,jakarta-mail,Java,Email,Smtp,Jakarta Mail,对于我的一个j2ee应用程序,我使用SMTP发送邮件 我的代码如下所示 package email_sender; import java.util.Properties; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetA
package email_sender;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class registration
{
public void send(String name, String email)
{
String email_format = "TEMP MESSAGE";
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("gmail@gmail.com","gmail_password");
}
});
try
{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(email));
message.setSubject("TEST subject");
message.setContent(email_format, "text/html");
Transport.send(message);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
}
这是登记表的测试格式
它的执行几乎需要9秒
我使用2MBPS宽带连接
这个过程有什么问题吗?或者我们需要找到更好的方式来发送邮件?FWIW,这是SMTP(简单邮件传输协议),而不是SMPT。很可能是证书验证花费了最多的时间。尝试将邮件发送到普通SMTP服务器(不带SSL)并查看效果。创建会话将是一项昂贵的操作。如果您非常频繁地发送邮件,则创建会话并将实例变量指定为局部变量。