gpt4 book ai didi

java - 可以在 Javax Mail API 中使用任何发件人地址是否很常见?

转载 作者:行者123 更新时间:2023-11-30 06:54:26 25 4
gpt4 key购买 nike

我是 javax 邮件 API 的新用户。 (javax.mail.*)

通过尝试 vanilla 示例,似乎我可以通过使用 setFrom() 设置地址从任何地址发送电子邮件而无需身份验证

我在企业邮件服务器上试过了,它在没有警告的情况下工作。

这与我的常识相矛盾,即需要登录电子邮件帐户然后从那里发送电子邮件。

这是 javax 邮件 API 和电子邮件服务器的普遍预期行为吗?

这是我使用的代码。

import java.io.UnsupportedEncodingException;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.junit.Before;
import org.junit.Test;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

public class EmailTest {

JavaMailSenderImpl mailSender;
MimeMessage message;
MimeMessageHelper helper;

@Before
public void setUp() {

mailSender = new JavaMailSenderImpl();

mailSender.setHost("smtp.company.com" ); //<some smtp host>

message = mailSender.createMimeMessage();
helper = new MimeMessageHelper(message);


}

@Test
public void sendEmail() {

try {

helper.setFrom("john@company.com", "john doe");
helper.setTo("jane@company.com");
helper.setSubject("test subject");
helper.setText("Test Text");

mailSender.send(message);
} catch (MessagingException e) {

e.printStackTrace();
} catch (UnsupportedEncodingException e) {

e.printStackTrace();
}
}


}

最佳答案

这不是特定于 Java 的。邮件中的发件人地址只是一个您可以任意填写的字段,无论采用何种技术。但是,许多邮件服务器会拒绝您尝试在不使用您自己的电子邮件的情况下发送的电子邮件。确实允许任何发件人地址的电子邮件服务器将需要某种其他类型的身份验证

编辑:比较字母。发送旧学校信件(又名蜗牛邮件)时,您可以将任何地址作为发件人。只要您支付邮寄费用,邮局就不会在意。以完全相同的方式,邮件服务器通常不关心。

编辑 2:但是,如果您试图冒充或误导某人,您可能会遇到法律问题。当您将唐老鸭作为发件人时,没有人会在意。如果你把唐纳德·特朗普作为发件人放在上面,你可能会被起诉要求赔偿比你想象的更多的钱。这适用于普通邮件和电子邮件。

关于java - 可以在 Javax Mail API 中使用任何发件人地址是否很常见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36409311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com