我有以下代码。但在电子邮件中,我将发件人视为“未知发件人”。当接收者是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;
}
没有例外,我收到日志“发送电子邮件”
我没有邮箱。我想发送没有发件人的电子邮件,仍然在电子邮件中显示发件人姓名,发件人电子邮件地址为“no-reply@domain.com”
以下是它的显示方式。我有白色标记的公司敏感数据。 domain.com也是模拟域名。在实际应用程序中,我使用真实域,但结果是相同的。
为什么gmail和yahoo阻止我的邮件?
答案 0 :(得分:6)
尝试使用setFrom
代替setSender
,即:
message.setFrom(new InternetAddress("Sender Name" + "<" + "no-reply@domain.com" + ">"));