быстрое добавление адреса электронной почты для SMTP-утилиты .NetCore MailKit

Я нашел небольшую почтовую утилиту для MailKit .NetCore.

Я заставил его работать, но я не могу понять, как добавить более одного получателя электронной почты.

Я могу так:

EmailAddress toAddress = new EmailAddress()
{
    Name = "Ken Watanabe",
    Address = "[email protected]"
};

var newMessage = new EmailMessage()

А затем оно добавляется в новое сообщение EmailMessage следующим образом:

newMessage.ToAddresses.Add(toAddress);

Класс EmailMessage выглядит так:

public class EmailMessage
{
    public EmailMessage()
    {
        ToAddresses = new List<EmailAddress>();
        FromAddresses = new List<EmailAddress>();
    }

    public List<EmailAddress> ToAddresses { get; set; }
    public List<EmailAddress> FromAddresses { get; set; }
    public string Subject { get; set; }
    public string Content { get; set; }
}

Затем он передается другому методу для отправки:

var message = new MimeMessage();
message.To.AddRange(emailMessage.ToAddresses.Select(x => new MailboxAddress(x.Name, x.Address)));

Думаю, я могу создать новых получателей следующим образом:

EmailAddress toAddress1 = new EmailAddress()
{
    Name = "Ken Watanabe",
    Address = "[email protected]"
};

    EmailAddress toAddress2 = new EmailAddress()
{
    Name = "Ryosuke Yamada",
    Address = "[email protected]"
};

newMessage.ToAddresses.Add(toAddress1);
newMessage.ToAddresses.Add(toAddress2);

Но мне было интересно, есть ли более простой способ, который не требовал бы такого количества кода.

Есть ли способ просто добавить информацию вместо того, чтобы создавать отдельный объект EmailAddress для каждого из них?

Спасибо!


person SkyeBoniwell    schedule 02.06.2020    source источник


Ответы (1)


Если вы можете изменить класс EmailAddress, то самым простым изменением было бы создание конструктора класса с параметрами для имени и электронной почты, например.

public class EmailAddress
{
    public EmailAddress() { }

    public EmailAddress(name, address) 
    { 
        Name = name;
        Address = address;  
    }
    // ...

Затем вы можете создать новый адрес электронной почты и добавить его прямо в список адресов. например

newMessage.ToAddresses.Add(new EmailAddress("Ken Watanabe", "[email protected]"));
newMessage.ToAddresses.Add(new EmailAddress("Ryosuke Yamada", "[email protected]"));
person Rosco    schedule 03.06.2020