У меня есть сценарий, чтобы преобразовать действительный адрес электронной почты в тестовую учетную запись, добавив «test-» в домен адреса электронной почты.Так что в тестовой среде он не дойдет до реальных получателей.Также я добавляю свой адрес электронной почты в скрытую копию, чтобы проверить это содержимое электронной почты.
Что я пробовал до сих пор:
{
MailMessage msg = new MailMessage();
// already valided the "emailAddress" is the valid one or not
msg.To.Add(new MailAddress(ToTestAccount(emailAddress)));
// other code ...
}
Вызов метода ToTestAccount()
для добавления "test-"в адрес электронной почты.
private string ToTestAccount(string emailAddress)
{
var userAlias = emailAddress.Split('@')[0];
var host = emailAddress.Split('@')[1].Split('.')[0];
var hostDomain = emailAddress.Split('@')[1];
var indexOfDot = hostDomain.IndexOf('.');
var domain = hostDomain.Substring(indexOfDot, hostDomain.Length - indexOfDot);
return userAlias + "@test-" + host + domain;
}
Функциональность дает ожидаемый результат.Образцы данных и ожидаемый результат:
Email Address | Expected
----------------------------------------------------------
arulkumar@gmail.com | arulkumar@test-gmail.com
arul.kumar@gmail.com | arul.kumar@test-gmail.com
arulkumar4@gmail.co.in | arulkumar4@test-gmail.co.in
arul.kumar4@gmail.co.in | arul.kumar4@test-gmail.co.in
Но есть ли другой способ достижения ожидаемого результата, я имею в виду использование менее строковых функций или наилучшая практика для его достижения?
C # Fiddle forто же самое: https://rextester.com/LPZI50439
По какой-то причине я не могу использовать опцию SpecifiedPickupDirectory
, поэтому я запускаю фактическое электронное письмо.