我正在尝试在我的 java 应用程序中实现邮件系统,但我不确定如何发送电子邮件,以便邮件服务器及其垃圾邮件过滤器尊重它们。我将发送包含“完成您的注册”、“忘记密码”的电子邮件以及在用户帐户中发生的通知。
目前我通过我的 gmail 帐户正常发送电子邮件(我不一定需要使用 gmail)。但是,在发送了几封邮件之后,我指出除非我登录到 gmail Web 应用程序,否则 gmail 会停止发送我的邮件。我通过经典的 Java 邮件 API 发送它:
// settings
properties = System.getProperties();
properties.put("mail.smtp.host", smtpServer);
properties.put("mail.smtp.port", smtpPort);
properties.put("mail.smtp.socketFactory.port", smtpPort);
properties.put("mail.smtp.socketFactory.class", SSLSocketFactory.class.getName());
properties.put("mail.smtp.auth", "true");
// sending email via smtp
Session session = Session.getInstance(properties, authenticator);
final MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject, "UTF-8");
message.setContent(content, "text/html; charset=UTF-8");
Transport.send(message);
那么我必须使用自己的 SMTP 服务器吗?那么默认的 sendmail linux 命令呢,为什么我需要 SMTP?通过 PHP,我们可以直接发送电子邮件而无需 SMTP,我也可以使用 Java 来实现吗?
<?php mail($to, $subject, $message, $headers); ?>
这些技术中哪一个是最正确的?如何使用这些服务,让他们信任他人?我该怎么做才能不被标记为垃圾邮件?