2017-05-29 22 views
-1

.Netコア(現在)はSystem.Net.Mail名前空間を持たず、ナゲット経由で利用できるこの名前空間のプレビューバージョンにはSmtpClientがありません。しかし、何らかの理由でクラスライブラリを使用したくない場合(独立したヒーローなど)、.Net Core(HttpWebRequest、HttpClient、Socketsなど)で利用可能なツールを使用して電子メールを送信する方法はありますか? ?もしそうなら、どのようにこれを行うことができるでしょうか(の例ではなく、理論)。クラスライブラリを使用せずに.Net Coreで電子メールを送信

+1

あなた自身のライブラリを書いているわけではありません。自分で書くよりも自分のコードを読んだり修正したりすることに心配している方は、MailKit(https:// github。 com/jstedfast/MailKit)、その獣に取り組むかどうかを決めます。幸運:) – Steveland83

+1

@Arrrrあなたのオプションは、独自のsmtpクラスを書くためにTCPライブラリを使用することです。他の図書館の例以外に、私たちがそれを手助けするために提供できるものは何もありません。電子メールはHTTPではないので、Httpライブラリを使用することは適切な野球場でさえありません。 –

+0

@JoePhillips:ソケットプログラミングを使用して簡単に行うことができます。私の答えをチェックしてください。 – Transcendent

答えて

0

あなたは本当に自分のライブラリを作成して電子メールを送信できます。質問は「あなたはするべきですか?」必要な時間は、幅広い聴衆がライブラリを利用できるようにすることを完全に意図していない限り、価値のあるものではありません。

SMTP Specification (RFC 821)https://tools.ietf.org/html/rfc821)は約68ページでした。この仕様の実装は「実行可能」でしたが、大きな努力が必要でした。新しいSMTP Specification (RFC2821)https://tools.ietf.org/html/rfc2821)は79ページです。

RFC 2821で規定されている機能の実装以外にも、他の多くのRFCやドキュメントに精通している必要があります。

.NET Coreでメールを送信するすべての人に最適なオプションは、SendGrid(http://sendgrid.com/)のようなサービスを使用するか、またはSendGrid(http://sendgrid.com/)のようなサービスを使用するかです。 MailKit(https://github.com/jstedfast/MailKit)のようなフリーでオープンソースのライブラリです。私はほとんどの.NET Core展開サイトは、これらの2つの方法の1つを使って電子メールを送信していると考えています。

Steve Gordonは、ASP.NET CoreでMailKitライブラリを使用すると、本当に素晴らしいブログ記事(https://www.stevejgordon.co.uk/how-to-send-emails-in-asp-net-core-1-0)を作成しました。あなたがあなた自身のSMTP librar Yを構築したい(と私は間違いなくそれを提唱わけではない)場合でも

、最善のアプローチは、GitHub経由MailKithttps://github.com/jstedfast/MailKit)のようなものをフォークし、それを修正するかもしれません。それは、少なくともあなたが働いている実装を繰り返し実行したり、繰り返したりすることを可能にします。

ほとんどの作業は、System.Net.Sockets名前空間のコンポーネントを使用して行われます。ここに.NET Framework 4.7バージョン(https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets?view=netframework-4.7)のリファレンスがあります。私はそれをテストしていませんが、.NET Coreの実装とかなり似ているはずです。

時には、最良のアドバイスは「あなたができるはずがありません」ということです。 「独立した英雄」にならないでください。何が効いているか。

関連する問題