我按照代码发送邮件而不进行身份验证.java代码描述如下。
final String frommail = "a@g.com"
String toEmail = "b@gmail.com";
Properties props = new Properties();
props.put("mail.smtp.auth", PropertiesLoader.getPropertiesValue(MAIL_SMTP_AUTH));
props.put("mail.smtp.host", PropertiesLoader.getPropertiesValue(MAIL_SMTP_HOST));
props.put("mail.smtp.port", PropertiesLoader.getPropertiesValue(MAIL_SMTP_PORT));
//enable authentication
props.put(MAIL_SMTP_ENABLE, PropertiesLoader.getPropertiesValue(MAIL_SMTP_ENABLE));
Session session = Session.getInstance(props);
try {
MimeMessage msg = new MimeMessage(session);
//set message headers
msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
msg.addHeader("format", "flowed");
msg.addHeader("Content-Transfer-Encoding", "8bit");
msg.setFrom(new InternetAddress(frommail, EMAIL_FROM_NAME));
// msg.setReplyTo(InternetAddress.parse(frommail, false));
msg.setSubject(subject, "UTF-8");
msg.setContent(body, MAIL_CONTENT_TYPE);
msg.setSentDate(new Date());
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("pramilkprince@rediffmail.com", false));
Transport.send(msg);
logger.info("EMail Sent Successfully!!");
但是在发送邮件时,它会抛出异常
com.sun.mail.smtp.SMTPAddressFailedException:554 5.7.1 :拒绝中继访问 com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1862)at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1118) 在javax.mail.Transport.send0(Transport.java:254)at javax.mail.Transport.send(Transport.java:124)at com.gtl.gcc.util.SendEmail.sendEmailFromInfo(SendEmail.java:195)at at com.gtl.gcc.util.SendEmail.createMailBodyAndSendMailForUpdateKYC(SendEmail.java:144)
如果有任何人对此有所了解请帮助
答案 0 :(得分:0)
如果要在不进行身份验证的情况下发送邮件,则需要运行自己的SMTP服务器。如果它在公共互联网上,它将充满垃圾邮件,然后你可以自己使用它。如果它在您的私人内部网上,您可以使它工作。例如,Gmail肯定会不让您在未经过身份验证的情况下发送邮件。请注意,这与使用JavaMail API完全没有任何关系。
答案 1 :(得分:0)
正如@BillShannon指出的那样,由于垃圾邮件问题,通过大多数SMTP服务器发送都需要进行身份验证。
但是,任何域的 MX网关都需要在TCP 25上打开,对于没有身份验证的电子邮件。
在处理Java send email avoiding smtp relay server and send directly to MX server时,我创建了一个小例子来使用目标域的MX服务器来直接解决这个问题。
如前所述:如果您的发送服务器没有反向DNS到您从发送的域名,那么您很可能最终被阻止或直接归类为垃圾邮件。
祝你好运