发送java邮件的更好方式,除了传统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

对于我的一个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.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)并查看效果。创建会话将是一项昂贵的操作。如果您非常频繁地发送邮件,则创建会话并将实例变量指定为局部变量。