[C#] EMailを送信する方法(System.Net.Mail)
こんにちは。明月です。
この投稿はC#でEMailを送信する方法(System.Net.Mail)に関する説明です。
プロジェクトでよく使う機能と思えばEMailを送ることではないかと思います。例えば、ウェブページでユーザ登録からパスワード初期化、お知らせのメールなど様々で使います。
C#ではメールを送信する方法がいろいろありますが、その中で.Net FrameworkのSystem.Net.Mailを使う方法があります。
System.Net.Mailの場合は.Net Frameworkの基本の機能なので別にNugetを利用してライブラリを連携する必要がないです。
using System;
using System.Net.Mail;
using System.IO;
class Program
{
// 実行関数
static void Main(string[] args)
{
MailMessage mail = new MailMessage();
try
{
// 送信するメールアドレス、名、エンコード(UTF-8)
mail.From = new MailAddress("nowonbun@gmail.com", "nowonbun", System.Text.Encoding.UTF8);
// 宛先メールアドレス追加
mail.To.Add("nowonbun@gmail.com");
// 宛先(CC)メールアドレス追加
mail.CC.Add("nowonbun@gmail.com");
// 宛先(BCC)メールアドレス追加
mail.Bcc.Add("nowonbun@gmail.com");
// メールタイトル
mail.Subject = "Hello world";
// 本文内容(HTMLタイプ)
mail.Body = "<html><body>hello wrold</body></html>";
// 本文内容フォーマットタイプ(falseの場合はテキストタイプ)
mail.IsBodyHtml = true;
// メールタイトルと本文内容のエンコードタイプ(UTF-8)
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.BodyEncoding = System.Text.Encoding.UTF8;
// 添付ファイル(Stream과 파일 이름)
mail.Attachments.Add(new Attachment(new FileStream(@"D:\test1.zip", FileMode.Open, FileAccess.Read), "test1.zip"));
mail.Attachments.Add(new Attachment(new FileStream(@"D:\test2.zip", FileMode.Open, FileAccess.Read), "test2.zip"));
// smtp サーバ設定
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
// smtp ポート
SmtpServer.Port = 587;
// smtp 認証
SmtpServer.Credentials = new System.Net.NetworkCredential("GoogleID", "パスワード");
// SSL 使用可否
SmtpServer.EnableSsl = true;
// 送信
SmtpServer.Send(mail);
}
finally
{
// 添付ファイルのStreamのリソースを返却
foreach (var attach in mail.Attachments)
{
attach.ContentStream.Close();
}
}
Console.WriteLine("Press any key...");
Console.ReadKey();
}
}
ソースは作成しました。
その後、SMTPサーバーを設定しましょう。私の場合はGoogleメールを利用します。
Google mail - https://support.google.com/a/answer/176600?hl=ja
先にクロームに接続して右上のアカウント管理に行きましょう。(ログインができなかった状況なら先にログインしてから。)
アカウント管理に移動して安全性の低いアプリのアクセスのタブに移動します。
安全性の低いアプリの許可を有効にします。
このチェックをしないと外部からグーグルメールを使用できないようにすることです。なので、idやpwの漏れがなければそんなに問題はありません。
上のソースを実行してメールを送信しましょう。
プログラムが正常に実行されました。
GMailのメールの受信トレイを見れば、メールが届いたことを確認できます。
ここまでC#でEMailを送信する方法(System.Net.Mail)に関する説明でした。
ご不明なところや間違いところがあればコメントしてください。
「Devlopment note / C#」の他投稿
- [C#] NPOIライブラリを利用してエクセルファイルを生成する方法2020/05/07 01:49:01
- [C#] Geckoライブラリを利用してウェブスクレイピングする方法2020/05/05 00:52:26
- [C#] PDFを作成する方法(iTextSharp)2020/05/03 10:22:40
- [C#] シリアライズ(Serialization)をする方法2020/04/30 19:32:04
- [C#] dynamicタイプの動的パラメータ-DynamicObject(WinFormでASP.MVCのViewBagオブジェクトを使用する方法)2020/04/29 22:41:32
- [C#] Stringの補間式(interpolation)2020/04/27 20:39:57
- [C#] Newtonsoft.JSONライブラリを利用してJsonデータ構造を扱う方法2020/04/23 20:19:53
- [C#] EMailを送信する方法(System.Net.Mail)2020/04/22 19:00:42
- [C#] ini環境ファイルを使う方法2020/04/22 00:09:39
- [C#] 環境設定ファイルを扱う方法(System.Configuration)2020/04/20 19:37:57
- [C#] Reflectionを利用してクラス複製する方法2020/04/17 00:34:33
- [C#] XMLをXPathを利用してデータを取得する方法2020/04/16 00:47:17
- [C#] NSoupライブラリを利用してXMLとHTMLをパーシングする方法2020/04/14 19:34:15
- [C#] 日付フォーマット2020/04/09 20:53:20
- [C#] ログライブラリ(log4net)を設定する方法2020/04/08 13:04:22
最新投稿
- check2024/04/10 19:03:53
- [Java] 64.Spring bootとReactを連結する方法(Buildする方法)2022/03/25 21:02:18
- [Javascript] Node.jsをインストールしてReactを使う方法2022/03/23 18:01:34
- [Java] 63. Spring bootでcronスケジューラとComponentアノテーション2022/03/16 18:57:30
- [Java] 62. Spring bootでWeb-Filterを設定する方法(Spring Security)2022/03/15 22:16:37
- [Java] JWT(Json Web Token)を発行、確認する方法2022/03/14 19:12:58
- [Java] 61. Spring bootでRedisデータベースを利用してセッションクラスタリング設定する方法2022/03/01 18:20:52
- [Java] 60. Spring bootでApacheの連結とロードバランシングを設定する方法2022/02/28 18:45:48
- [Java] 59. Spring bootのJPAでEntityManagerを使い方2022/02/25 18:27:48
- [Java] 58. EclipseでSpring bootのJPAを設定する方法2022/02/23 18:11:10
- [Java] 57. EclipseでSpring bootを設定する方法2022/02/22 19:04:49
- [Python] Redisデータベースに接続して使い方2022/02/21 18:23:49
- [Java] Redisデータベースを接続して使い方(Jedisライブラリ)2022/02/16 18:13:17
- [C#] Redisのデータベースを接続して使い方2022/02/15 18:46:09
- [CentOS] Redisデータベースをインストールする方法とコマンドを使い方2022/02/14 18:33:07