Rockstar_ Ответов: 1

Один и тот же адрес электронной почты в полях кому и CC


Всем Привет,


Я добавил адрес электронной почты в поля TO и CC(один и тот же адрес электронной почты в обоих текстовых полях). Получатель получает два письма.

Мой тестер ожидает только одно письмо, я попытался удалить дубликат письма из поля CC. Но мой тестер ожидает, что когда он откроет ibox и увидит поля TO и CC, то он должен увидеть адрес электронной почты как в полях TO, так и в полях CC.


public ActionResult SaveSendNotification(SendNotificationCommonForAll dto)
        {
            try
            {
                string[] CCList = { string.Empty };
                string[] ToList = { string.Empty };
                Guid guid = new Guid();

                UserDTO userDTO = (UserDTO)Session["UserDto"];
                string senderEmailId = userDTO.Email;
if (!string.IsNullOrEmpty(dto.SendNotificationCommon.ToRecipients))
                {
                    ToList = dto.SendNotificationCommon.ToRecipients.Split(new[] { ';', ',' });
                    if (ToList.Contains(System.Configuration.ConfigurationManager.AppSettings["DLKey"]))
                    {
                        string allEmails = string.Empty;
                        foreach (string s in UserAccountService.GetUsersForMailSend(userDTO.CreatedBy).ToList())
                        {
                            if (s != "" || s != string.Empty)
                                allEmails = allEmails + s + ",";
                        }
                        ToList = allEmails.Split(new[] { ';', ',' });
                        ToList = ToList.Where(x => !string.IsNullOrEmpty(x)).ToArray();
                        
                    }
                    foreach (string mail in ToList)
                    {
                        if (!IsValid(mail))
                        {
                            TempData["ResultMessage"] = "Invalid To mail: " + mail;
                            return RedirectToAction("Index", new { guid = guid, NotificationType = dto.SendNotificationCommon.NotificationType });
                        }
                    }
                    ToList = new HashSet<string>(ToList).ToArray();
                }

                if (!string.IsNullOrEmpty(dto.SendNotificationCommon.CcRecipients))
                {
                    CCList = dto.SendNotificationCommon.CcRecipients.Split(new[] { ';', ',' });
                    foreach (string mail in CCList)
                    {
                        if (!IsValid(mail))
                        {
                            TempData["ResultMessage"] = "Invalid Cc mail: " + mail;
                            return RedirectToAction("Index", new { guid = guid, NotificationType = dto.SendNotificationCommon.NotificationType });
                        }
                    }
                    CCList = new HashSet<string>(CCList).ToArray();
                }
                CCList = CCList.Where(s => !string.IsNullOrEmpty(s)).ToArray();
                CCList= CCList.Except(ToList).ToArray();
                Email emaildetails = new Email(ToList, dto.HTMLEditor.HtmlContent, CCList, null, dto.SendNotificationCommon.Subject, Configurations.MailUser, new EmailConfiguration { HostName = Configurations.MailUser, ServerName = Configurations.MailServer, Password = Configurations.MailUserPassword, Port = Convert.ToInt16(Configurations.MailPortNumber) });
                SmtpClient smtpClient = new SmtpClient();
                MailMessage mailObject = new MailMessage();


                AdminSettingsDto AdminDTO = AdminSettingsCache.GetAdminsettingsFromCache();
                if (emaildetails.SendTo != null)
                {
                    mailObject = PrepareMailMessage(emaildetails);
                    string smtpServerName = AdminDTO.SmtpServerName.Trim();
                    string userName = AdminDTO.Email;
                    string password = AdminDTO.Password;
                    NetworkCredential networkCredential = new NetworkCredential(userName, password);
                    smtpClient.Host = smtpServerName;
                    smtpClient.UseDefaultCredentials = false;
                    smtpClient.Credentials = networkCredential;
                    smtpClient.EnableSsl = Configurations.EnableSSL;
                    smtpClient.Port = (int)AdminDTO.Port;


                    //todo: needs to be uncommented on production
                    smtpClient.Send(mailObject);
}


Спасибо..

С уважением,
Равикумар Г.

Что я уже пробовал:

Я искал это в гугле, но не получил никаких подсказок.

Graeme_Grant

Мы не можем видеть ваш код телепатически... Пожалуйста, поделитесь кодом, чтобы мы могли видеть, что вы делаете.

Разработчики жертвуют и жертвуют своим собственным временем бесплатно, чтобы помочь коллегам-разработчикам разрешить трудности. Важно, чтобы Вы были кристально ясны в том, что вы испытываете, с большим количеством информации, чтобы ваше и их время не было потрачено впустую. Чем яснее вопрос, тем больше шансов, что вы получите благоприятный ответ своевременно.

Пожалуйста, найдите время, чтобы просмотреть эти ссылки, прежде чем отправлять вопросы:
* Некоторые рекомендации по размещению вопросов на форумах[^]
* Сказки из Империи Зла-задавать вопросы-это навык[^]

Как только вы будете готовы обновить вопрос с четкими и краткими деталями, образцом кода, любыми сообщениями об ошибках (включая внутренние детали исключения) и т. д., Пожалуйста, нажмите на кнопку Улучшить вопрос чтобы добавить больше информации к этому вопросу.

M,AqibShehzad

пост ваш код

Graeme_Grant

На данный момент он задал более 130 вопросов. Можно было бы подумать, что он уже знает...

1 Ответов

Рейтинг:
1

Jochen Arndt

Ваш тестер не знает, о чем он говорит. Если вы укажете один и тот же адрес несколько раз, он будет отправлен несколько раз. Ему все равно, в каком из полей назначения ("To", "Cc", "Bcc") указан адрес. SMTP-сервер проанализирует все поля и перешлет сообщение каждому указанному получателю.

Почтовые клиенты просто показывают содержимое полей назначения" кому "и" Cc". Адрес, указанный только в поле "Кому", не будет отображаться в поле" Cc " клиента.

Ваш тестер должен понимать назначение этих полей:

"Кому" - это для фактического получателя (ов), который может ответить.

"Cc" предназначен для дополнительных получателей, чтобы они были проинформированы, но не ожидали ответа.

"Bcc" - это как "Cc", но поле удаляется из почты (или изменяется) при передаче.

См. также раздел 3.6.3. Поля адреса назначения от RFC 2822[^].