我正在使用EWS阅读邮箱' test@comp.com'并提供服务帐户凭据以登录交易所。该服务帐户有权访问test@comp.com,甚至可以从中发送邮件。但是当我尝试使用以下代码发送邮件时:
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();
}
}
我没有看到从test@comp.com发送的邮件 地址是我的,我提供的地址是test@comp.com的地址
发送的邮件总是在我用于登录交换服务器的服务帐户的已发送邮件文件夹中结束。
有没有办法实现我想要的目标?
答案 0 :(得分:5)
您需要设置保存已发送副本的文件夹的FolderId,以便它反映您发送的邮箱,例如更改
replymessage.sendAndSaveCopy(WellKnownFolderName.SentItems);
到
FolderId SentFolderForUser = new FolderId(WellKnownFolderName.SentItems, fromEmailAddress);
replymessage.sendAndSaveCopy(SentFolderForUser);
干杯 格伦