Просто для удовольствия: простое решение для JavaScript.
document.querySelectorAll('.container').forEach(clear);
function clear(element) {
element.childNodes.forEach(check, element);
}
function check(item) {
if (item.nodeType === 3) this.removeChild(item);
}
span {
display: inline-block;
width: 100px;
background-color: palevioletred;
}
<p class="container">
<span> Foo </span>
<span> Bar </span>
</p>
Вероятно, вы пытаетесь использовать серверы Gmail на порту 25 для доставки почты третьей стороне по не прошедшему проверку подлинности. Gmail не позволяет вам это делать, потому что тогда любой может использовать серверы Gmail для отправки почты кому-либо еще. Это называется открытым реле и является обычным средством спама в первые дни. Открытые реле больше не приемлемы в Интернете.
Вам нужно будет попросить вашего SMTP-клиента подключиться к Gmail с использованием аутентифицированного соединения, возможно, на -порте 587 .
Попробуйте этот код:
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.prot", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("PUT THE MAIL SENDER HERE !", "PUT THE PASSWORD OF THE MAIL SENDER HERE !");
}
}
);
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("PUT THE MAIL SENDER HERE !"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("PUT THE MAIL RECEIVER HERE !"));
message.setSubject("MAIL SUBJECT !");
message.setText("MAIL BODY !");
Transport.send(message);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
Вам нужно меньше защищать безопасность отправителя почты. если проблема сохраняется, я думаю, что это может быть вызвано антивирусом, попробуйте отключить его.
props.put("mail.smtp.starttls.enable", "true");
решило мою проблему;)
Моя проблема была :
com.sun.mail. smtp.SMTPSendFailedException: 530 5.7.0 Сначала необходимо выполнить команду STARTTLS. u186sm7971862pfu.82 - gsmtp
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at com.example.sendmail.SendEmailExample2.main(SendEmailExample2.java:53)
порт smtp и socketFactory должны быть изменены
String to = "reciveremail@xxxx.xxx";
String subject = "subject"
String msg ="email text...."
final String from ="senderemail@gmail.com"
final String password ="senderPassword"
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.debug", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from,password);
}
});
//session.setDebug(true);
Transport transport = session.getTransport();
InternetAddress addressFrom = new InternetAddress(from);
MimeMessage message = new MimeMessage(session);
message.setSender(addressFrom);
message.setSubject(subject);
message.setContent(msg, "text/plain");
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
transport.connect();
Transport.send(message);
transport.close();
}
надеюсь, что это сработает для вас ..
Я также столкнулся с той же проблемой, пока я создавал приложение для уведомления по электронной почте. вам просто нужно добавить одну строку. Ниже сохранен мой день.
props.put("mail.smtp.starttls.enable", "true");
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Сначала необходимо выполнить команду STARTTLS. h13-v6sm10627790pgp.13 - gsmtp
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at com.smruti.email.EmailProject.EmailSend.main(EmailSend.java:99)
Надеюсь, это вам поможет.
String username = "mail@google.com";
String password = "some-password";
String recipient = "myemail@hotmail.com");
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.from", "myemail@gmail.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
props.setProperty("mail.debug", "true");
Session session = Session.getInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setRecipients(Message.RecipientType.TO, recipient);
msg.setSubject("JavaMail hello world example");
msg.setSentDate(new Date());
msg.setText("Hello, world!\n");
Transport transport = session.getTransport("smtp");
transport.connect(username, password);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();