GMail、mailgun、mailchimpなど などのさまざまな電子メールプロバイダを使用して、使用するライブラリを作成したいと考えています。これらのプロバイダは、現在、私は次のインタフェース ストラテジーなどを電子メールの送信に使用する方法
interface IEmailSendStrategy // how to send email like SMTP , REST , HTTP Post etc ??
{
void Send(IEmailSender sender);
}
interface IEmailSender // provider like GMail , mailchimp, mailgun
{
void SendEmail(ISendStrategy strategy, System.Net.Mail.Message message)
}
と
class SMTPStrategy : IEmailSendStrategy
{
void Send(IEmailSender sender){ // code to send }
}
class GMailSender : IEmailSender
{
void SendMail(ISendStrategy strategy, System.net.Mail.Message message){ // code }
}
が今私の質問は、これらのインタフェースを実装するいくつかのクラスを定義しているなど、SMTP、HTTPポスト、
RESTベースのAPIを使用して電子メールを送信することができます
1)これはEmailLib、落とし穴、間違ったデザインを開発するための良いアプローチですか?私はDesignPatternウェイ
(ユーザ名などの、障害者、ポート、SSLかRESTなどなどのために、認証にこれらのクラスに多くのデータを置くことができますどのように
2)...
私は
が、それぞれがSMTPData(Gmailは
いくつかのMD5認証などを使用することができ、SSL、別のポートを必要とする独自のタイプを有することができる(等...、SMTPDataのような)IDATA考えると、これらのIDATAのための具体的なクラスを使用しますなど)
3)任意の提案は、この強力なライブラリを作るために歓迎されている(私は私のために)
後でそれを
ありがとう
送信者の仕組みを使用して送信者を設計することができます。 ProviderBaseからEmailProviderBaseクラスを作成し、具体的な機能を実現する継承クラスを作成します。その後、.configから適切なプロバイダをロードするか、コードから直接ロードするEmailServicedClassを作成します。 – mishau