Цитата:
Сообщение от
Raven Melancholic
TVD, как прошедший мой путь, просьба .
Сталкивались ли Вы с тем, что письма, циркулирующие внутри экземпляра Exchange и поступившие из вне имеют разные свойства? Если сталкивались, то как можно получить адреса в случае, если письмо получено из внешнего ящика?
День добрый, подобной разницы не было. Одинаково определяются все реквизиты без проблем. Еще раз проверил, с mail.ru на корпоративную отправил письмо, все нормально определяется, почта отправителя, его имя, и почта получателя. В стороннем HD тоже всегда все ОК, Даже если отсылают на рассылку которая пересылает письмо внутри Exchange на почтовый адрес, то все определяется. На всякий случай ниже кусок кода где я это делал(продолжение того что в моем первом посте как пример приводил)
PHP код:
if (direct == "")
{
res[0] = emailMessage.From.Address;
res[1] = emailMessage.From.Name;
}
else
{
res[0] = emailMessage.ToRecipients.ToString();
res[1] = emailMessage.DisplayTo;
}
res[2] = message.Subject;
res[3] = message.Body;
if (direct == "")
{
res[4] = Convert.ToString(message.DateTimeReceived);
}
else
{
res[4] = Convert.ToString(message.DateTimeSent);
}
int co = 1;
if (direct != "")
{
res[5] = message.Id.ToString();
}
int iIdx = 0;
for (iIdx = 0; iIdx < emailMessage.CcRecipients.Count; iIdx++)
{
if(!res[7].Contains(emailMessage.CcRecipients[iIdx].Address.ToString()+";"))
res[7] += emailMessage.CcRecipients[iIdx].Address.ToString() + ';';
}
for ( iIdx = 0; iIdx < emailMessage.ToRecipients.Count; iIdx++)
{
if (!res[7].Contains(emailMessage.ToRecipients[iIdx].Address.ToString() + ";"))
res[7] += emailMessage.ToRecipients[iIdx].Address.ToString() + ';';
}
iIdx = 0;
for (iIdx = 0; iIdx < emailMessage.BccRecipients.Count; iIdx++)
{
if (!res[7].Contains(emailMessage.BccRecipients[iIdx].Address.ToString() + ";"))
res[7] += emailMessage.BccRecipients[iIdx].Address.ToString() + ';';
}
if (emailMessage.IsReadReceiptRequested == true) res[8] = "1";