РЕДАКТИРОВАТЬ: этот вопрос бессмыслен, кроме как в качестве упражнения в отвлекающих маневрах. Проблема оказалась комбинацией моего идиотизма (НИКОМУ не отправляли электронные письма, поскольку хост не был указан и был неверным в web.config) и пользователей, которые говорили мне, что они иногда получали электронные письма, а иногда нет, когда на самом деле они НИКОГДА не получали электронные письма.
Поэтому вместо того, чтобы предпринимать надлежащие шаги для воспроизведения проблемы в контролируемых условиях, я полагался на информацию о пользователе и менталитет "это работает на моей машине". Хорошее напоминание себе и всем, кто иногда бывает идиотом.
Я просто наткнулся на что-то, что считаю непоследовательным, и хотел посмотреть, делаю ли я что-то не так, идиот ли я или...
MailMessage msg = new MailMessage();
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
На самом деле отправляет это письмо только 1 человеку, последнему.
Чтобы добавить несколько, я должен сделать это:
msg.To.Add("[email protected],[email protected],[email protected],[email protected]");
Я не понимаю. Я думал, что добавляю несколько человек в коллекцию адресов To
, но на самом деле я заменил ее.
Я думаю, что только что понял свою ошибку - чтобы добавить один элемент в коллекцию, используйте .To.Add(new MailAddress("[email protected]"))
Если вы используете только string
, он заменяет все, что было в его списке. РЕДАКТИРОВАТЬ: другие люди протестировали и не наблюдают такого поведения. Это либо ошибка в моей конкретной версии фреймворка, либо, что более вероятно, мой идиотский маневр.
Фу. Я бы посчитал это довольно большой ошибкой! Поскольку я ответил на свой вопрос, но я думаю, что это полезно иметь в архиве stackoverflow, я все равно спрошу его. Может быть, кто-то даже имеет представление о других ловушках, в которые можно попасть.