【发布时间】:2016-06-09 14:15:51
【问题描述】:
我想向通讯组发送一封电子邮件,并确保收件人会收到电子邮件,因为它是专门发送给他们的。 含义:在“收件人”字段中,我希望他们只看到他们的电子邮件地址,而不是粗体字母的组名。
我正在为 Exchange 构建主题路由器 dll,我需要将发送到组的电子邮件拆分为单个电子邮件。 我正在使用 Exchange 2010。 有什么想法吗?
我想做这样的事情:
messageEventArgs.MailItem.Message.To = messageEventArgs.MailItem.Recipients
但不幸的是messageEventArgs.MailItem.Message.To 是只读的...
还有其他想法吗?
这里是一些示例代码:
void ownRoutingAgent_OnResolvedMessage(ResolvedMessageEventSource source, QueuedMessageEventArgs messageEventArgs)
{
bool forwardToSeg = false;
if (true) EventViewerLogger.WriteInfo("FromAddress: " + messageEventArgs.MailItem.FromAddress.ToString());
if (true) EventViewerLogger.WriteInfo("SecureSenders: " + m_SecureSenderAddress);
distGroupList = generateDistGroupList();
// Change origional Sender EMail Address to a random sender from the list of SEG users
foreach (string senderAddr in m_SecureSenderAddress.Split(','))
{
//Check if sender equals to a secure sender
if (senderAddr.ToUpper() == (messageEventArgs.MailItem.FromAddress.ToString().ToUpper()))
{
Random rnd = new Random();
int numOfUser = rnd.Next(0, senderAddresses.Length);
messageEventArgs.MailItem.FromAddress = new RoutingAddress(senderAddresses[numOfUser]);
forwardToSeg = true;
//Check if recepient is a distrebution group
// run over all recipients list
//foreach (EnvelopeRecipient recp in messageEventArgs.MailItem.Recipients)
//{
// run over excluded members list
foreach (MyClass disGrp in distGroupList)
{
// Checks if Recipients contain an e-mail group),
// if yes, does not route to seg.
if (messageEventArgs.MailItem.Message.To.ToString().ToUpper() == disGrp.emailAdress.ToUpper())
{
messageEventArgs.MailItem.Message.To.Add*******
= messageEventArgs.MailItem.Recipients
//create a method that extracts group members and saves them in an array
//delete group address from mail-recipients
//messageEventArgs.MailItem.Recipients;
return;
}
}
//}
}
}
【问题讨论】:
标签: c# email dll exchange-server