TV *_*ath 2 java email jakarta-mail html-email
我有以下代码.但在电子邮件中,我将发件人视为" 未知发件人 ".当接收者是gmail和yahoo时,根本不接收电子邮件.我设法从自己的域邮箱(在Outlook中设置)和另一个公司电子邮件地址(不同的域)收到电子邮件.在这两个中,发件人电子邮件被显示但仍然在Outlook中,当收到电子邮件时,它称为"未知发件人"并且名称未显示.

Properties props = new Properties();
props.put("mail.smtp.host", "mail.domain.com"));
props.put("mail.smtp.auth","false"));
props.put("mail.smtp.starttls.enable","false"));
props.put("mail.smtp.port","25"));
Session session = Session.getDefaultInstance(props);
try {
String subject = "Email Subject";
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress("no-reply@domain.com", "Sender Name"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(emailTo));
message.setSubject(subject);
String content = writer.toString();
message.setContent(content, "text/html; charset=UTF-8");
Transport.send(message);
logger.debug ("Email sent");
return true;
}
Run Code Online (Sandbox Code Playgroud)
没有例外,我得到日志"发送电子邮件"
我没有邮箱.我想发送没有发件人的电子邮件,仍然在电子邮件中显示发件人姓名,发件人电子邮件地址为"no-reply@domain.com"
以下是它的显示方式.我有白色标记的公司敏感数据.domain.com也是模拟域名.在实际应用程序中,我使用真实域,但结果是相同的.

为什么gmail和雅虎阻止我的邮件?
尝试使用setFrom而不是setSender,即:
message.setFrom(new InternetAddress("Sender Name" + "<" + "no-reply@domain.com" + ">"));
Run Code Online (Sandbox Code Playgroud)