java - 如何使用 groovy、java 将电子邮件发送到 Microsoft 直接发送(domain-com.mail.protection.outlook.com)
问题描述
我正在尝试通过 domain-com.mail.protection.outlook.com(Office 365 直接发送)向 user@domain.com 发送电子邮件,
下面是我的代码,
void sendEmail(InternetAddress sender, List<InternetAddress> recipients, String subject, String body,
@Nullable BodyPart optAttachment,
XgemailDirectionEnum direction = XgemailDirectionEnum.INBOUND,
Optional<String> optionalEnvelopeSenderAddress = Optional.empty())
{
final Properties properties = new Properties(_defaultProperties)
for (InternetAddress recipient : recipients)
{
if (optionalEnvelopeSenderAddress.isPresent())
{
properties.put("mail.smtp.from", optionalEnvelopeSenderAddress.get())
}
Session session
properties.put("mail.smtp.host", domain-com.mail.protection.outlook.com)
properties.put("mail.smtp.port", 25)
properties.put("mail.debug", "true")
session = Session.getInstance(properties)
Message message = new MimeMessage(session)
message.setFrom(sender)
message.setRecipients(
Message.RecipientType.TO,
recipient as InternetAddress[]
)
message.setSubject(subject)
message.setText(body)
Transport.send(message)
}
我也尝试添加属性 properties.put("mail.smtp.starttls.enable", "true") ,但没有运气。
我收到以下错误
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: domain-com.mail.protection.outlook.com, 25; timeout -1
以下是 mail.debug 日志
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth false DEBUG SMTP: trying to connect to host "domain-com.mail.protection.outlook.com", port 25, isSSL false
解决方案
推荐阅读
- regex - UTF-8 编码正则表达式
- javascript - 通过更改 url 更改本地存储而不更改站点
- null - ASPxGridView 在 INSERT 上从 GridViewDataComboBoxColumn 获取值,但在更新时获取空值
- oracle - 在 Oracle 中使用“SEQUENCE”作为 GeneratedValue 时 Symfony Doctrine 不起作用
- r - 计算 R 中一组变量中值的出现次数(每列)
- azure-machine-learning-service - 并行运行独立的“PythonScriptStep”步骤
- c - 我应该如何链接这些库?(SDL)
- r - 从 R 中的“data.frame”创建特定列和行的直方图
- python - matplotlib,networkx 不显示断开连接的节点
- amazon-web-services - 在 grafana 查询中添加动态变量