java - 关于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();}
}
}
我的问题是,根据代码,看起来任何人都可以使用任何发件人电子邮件地址字符串并将无限电子邮件发送到任何收件人电子邮件地址。我在我的理解中遗漏了一些东西,这将防止这种情况发生。请帮忙。
我知道这不是一个编程问题,但猜想,回答这个基本问题不会花费太多时间,而且不知道任何其他同样活跃的论坛。
解决方案
此示例适用于不需要身份验证的服务器。这通常不适用于生产中使用的 smtp 服务器。此类服务器主要用于不通过 Internet 公开的测试目的。因此,尽管可以发送您提到的无限数量的邮件,但没有人有兴趣这样做。
对于需要身份验证的服务器,需要提供凭据。这在您提到的博客中进行了详细说明。
推荐阅读
- python - 在定义之前使用函数
- git - 错误 Git SVN 克隆:使用未初始化的值 $sha1
- python - 我如何只从 Python 中的超类继承一些变量
- sqlite - 如何在运行 Micronaut 功能测试时备份和恢复 sqlite db
- javascript - 如何最好地更新 Vuejs 模板中 v-for 循环下的 DOM 的一部分
- reactjs - 在 react 中使用 chartjs 显示值或百分比
- github - 如何使github STFU关于合并后删除分支
- reactjs - 导航栏项目在 md 断点处跳转到网格项目容器内的新行
- c# - 我的网络代码只是在我的本地网络中工作
- python - Python请求代理模块问题