我正在使用 EWS 来读取邮箱“[email protected]” '并提供服务帐户凭据以登录交换。该服务帐户有权读取 [email protected]甚至可以通过它发送邮件。但是当我尝试使用以下代码发送邮件时:
private static void sendMailviaEWS(String to, String from, String subject,
String body, List<String> attname, ExchangeService service) {
try
{
EmailMessage replymessage = new EmailMessage(service);
replymessage.setSender(new EmailAddress(from));
EmailAddress fromEmailAddress = new EmailAddress(from);
replymessage.setFrom(fromEmailAddress);
replymessage.getToRecipients().add(to);
//replymessage.setInReplyTo(recipients);
replymessage.setSubject(subject);
replymessage.setBody(new MessageBody(body));
replymessage.sendAndSaveCopy(WellKnownFolderName.SentItems);
}catch (Exception e)
{
e.printStackTrace();
}
}
我没有看到从 [email protected] 发送的邮件 收件人地址是我的,我提供的发件人地址是 [email protected]
已发送的邮件始终位于我用于登录交换服务器的服务帐户的已发送邮件文件夹中。
有办法实现我想要的吗?
最佳答案
您需要设置保存已发送副本的文件夹的FolderId,以便它反射(reflect)您发送的邮箱,例如更改
replymessage.sendAndSaveCopy(WellKnownFolderName.SentItems);
到
FolderId SentFolderForUser = new FolderId(WellKnownFolderName.SentItems, fromEmailAddress);
replymessage.sendAndSaveCopy(SentFolderForUser);
干杯 格伦
关于java - 从邮箱发送邮件不会保存在已发送项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121609/