gpt4 book ai didi

c# - 在 C# 中的有效电子邮件地址的域部分添加 "test-"

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:27 26 4
gpt4 key购买 nike

我有一个场景,通过在电子邮件地址域中添加“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:https://rextester.com/LPZI50439

出于某种原因,我无法使用 SpecifiedPickupDirectory 选项,所以我触发了实际的电子邮件。

最佳答案

您可以使用 MailAddress 属性,这将导致更少 字符串操作并处理一些奇怪的有效电子邮件地址。

private string ToTestAccount(string emailAddress)
{
var originalEmailAddress = new MailAddress(emailAddress);
return $"{originalEmailAddress.User}@test-{originalEmailAddress.Host}";
}

或者如果您需要支持显示名称,您可以使用扩展方法:

public static MailAddress Testing(this MailAddress address)
{
return string.IsNullOrEmpty(address.DisplayName)
? new MailAddress($"{address.User}@test-{address.Host}")
: new MailAddress($"{address.User}@test-{address.Host}", address.DisplayName);
}

这将允许这样的用法:

{
MailMessage msg = new MailMessage();
// already valided the "emailAddress" is the valid one or not
msg.To.Add(new MailAddress(emailAddress).Testing()));
msg.To.Add(new MailAddress(aDifferentEmailAddress, displayName).Testing()));
// other code ...
}

关于c# - 在 C# 中的有效电子邮件地址的域部分添加 "test-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com