Взгляните на определение MailDefinition.CreateMailMessage на MSDN.
Указывает, что второй параметр (объект IDictionary, переменная «data» в вашем примере кода) должен содержать строки, которые заменяются в сообщении электронной почты.
Используя этот объект, вы можете добавить замену для адреса from следующим образом:
data.Add("<%From%>", "fromaddress@domain.com");
Однако из-за возможности подделки адресов отправителей с использованием SMTP почти все почтовые обменники будут использовать систему проверки электронной почты, такую как Sender Policy Framework (SPF) , чтобы гарантировать, что полученные электронные письма были отправлены с действительный источник.
Таким образом, вы не можете использовать любой адрес электронной почты в поле от, если хотите, чтобы ваши получатели получали ваши электронные письма. Вы должны использовать адрес электронной почты, соответствующий домену, с которого вы отправляете. Изменения в DNS также необходимы для проведения необходимых проверок.
Оформить заказ по этой ссылке: Обзор структуры политики отправителя
В нем говорится:
SPF легко понять. «Интернет» использует DNS (доменное имя
Система) для разрешения доменных имен (как пример www.msexchange.org)
в IP-адреса. DNS также используется для направления запросов на разные
услуги, такие как электронная почта и веб-серверы. Для каждого домена по всему
В мире должна существовать запись MX (Mail Exchanger). MX запись сообщает
отправитель электронной почты, на котором расположен целевой сервер для получения почты.
SPF публикует записи "обратного MX" в DNS, которые сообщают почте
Отправитель, с которого машины отправляют почту с домена.
Получатель электронной почты теперь может проверить эти записи, чтобы убедиться, что
электронная почта поступает от «доверенного» отправителя с этого домена.
Эти записи "обратного MX" могут быть легко опубликованы в DNS. Занимает
только одна строка в DNS для выполнения всех требований. Я дам тебе
пример далее в этой статье.
SPF работает на уровне транзакции SMTP и требует
Три наиболее важные части информации:
MAIL FROM: параметр входящей почты HELO или EHLO
параметр отправляющего SMTP-сервера (используется для отказов Mailer-Deamon
которые отправляют пустую MAIL FROM) IP-адрес отправляющего SMTP
Сервер
Редактировать
Нет способа передать псевдоним отправителя (отображаемое имя) в MailDefinition при создании, и я не уверен, как добавить данные в объект IDictionary, но должно работать следующее (в методе расширения Send):
message.Subject = subject;
message.From = new MailAddress(message.From.Address, "Display Name");
Надеюсь, это поможет.