Вопрос об отправке письма из java-программы
Мне нужно отправить письмо из Java-программы. Сначала я пытаюсь понять основы. Я нашел фрагмент по адресу:
https://www.javatpoint.com/example-of-sending-email-using-java-mail-api
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendEmail
{
public static void main(String [] args){
String to = "sonoojaiswal1988@gmail.com";//change accordingly
String from = "sonoojaiswal1987@gmail.com";change accordingly
String host = "localhost";//or IP address
//Get the session object
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
//compose the message
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("Ping");
message.setText("Hello, this is example of sending email ");
// Send message
Transport.send(message);
System.out.println("message sent successfully....");
}catch (MessagingException mex) {mex.printStackTrace();}
}
}
Мой вопрос в том, что согласно коду, похоже, что любой может использовать любую строку адреса электронной почты отправителя и отправлять бесконечные электронные письма на любой адрес электронной почты получателя. В моем понимании чего-то не хватает, что может предотвратить такой сценарий. Пожалуйста помоги.
Я понимаю, что это не вопрос программирования, но предполагаю, что для ответа на этот основной вопрос не потребуется слишком много времени, и я не знаю другого столь же активного форума.
1 ответ
Этот пример работает для серверов, которым не требуется аутентификация. И это обычно не относится к серверам smtp, используемым в производстве. Такие серверы используются в основном для целей тестирования, когда они не доступны через Интернет. Следовательно, хотя вы можете отправлять бесконечное количество писем, как упомянуто вами, никто не будет заинтересован в том, чтобы делать то же самое.
Для серверов, на которых необходима аутентификация, необходимо предоставить учетные данные. И это подробно объясняется в упомянутом вами блоге.