Gmail 用テンプレート![]()
Gmail は、安全性の低いアプリの許可を『有効』にする必要があります。( 使用した後は無効にしましょう )
using System;
using System.Windows.Forms;
using TKMP.Net;
namespace TKMP_SendMail_Gmail
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MailClass mc = new MailClass()
{
SmtpServer = "smtp.gmail.com",
Port = 587,
User = "アカウント",
Pass = password.Text,
Protocol = AuthenticationProtocols.TLS
};
var result = mc.SendMail(
"宛先",
"自メールアドレス",
this.subject.Text,
this.body.Text,
null, // 必要な場合、宛先を日本語で
null, // 必要な場合、差出人を日本語で
(MailClass.MailClassErrorArg _e) =>
{
this.error.Text = _e.Message;
}
);
if (result)
{
MessageBox.Show("メールを送信しました");
}
}
}
}
TKMP を使用した MailClass
using System;
using TKMP.Writer;
using TKMP.Net;
namespace TKMP_SendMail_Gmail
{
class MailClass
{
private MailWriter mailWriter = null;
public string SmtpServer { get; set; }
public int Port { get; set; }
public string User { get; set; }
public string Pass { get; set; }
public AuthenticationProtocols Protocol { get; set; }
private string err_message = "";
public class MailClassErrorArg
{
public string Message { get; set; }
}
public delegate void MailClassError(MailClassErrorArg e);
public bool SendMail(string To, string From, string Subject, string Body, string To_J, string From_J, MailClassError mailClassError)
{
bool bResult = true;
mailWriter = new MailWriter();
try
{
mailWriter.ToAddressList.Add(To);
}
catch (Exception ex)
{
bResult = false;
}
// エラー処理
if (!bResult)
{
if (mailClassError != null)
{
MailClassErrorArg e = new MailClassErrorArg() { Message = "宛先が正しくありません" };
mailClassError(e);
}
return bResult;
}
// From が未指定や正しくない文字列の場合
try
{
mailWriter.FromAddress = From;
}
catch (Exception ex)
{
mailWriter.FromAddress = "______@gmail.com";
}
TextPart textPart = new TextPart(Body);
mailWriter.MainPart = textPart;
if (To_J != null)
{
mailWriter.Headers.Add("To", To_J + " <" + To + ">");
}
else
{
mailWriter.Headers.Add("To", To);
}
if (From_J != null)
{
mailWriter.Headers.Add("From", From_J + " <" + From + ">");
}
else
{
mailWriter.Headers.Add("From", From);
}
mailWriter.Headers.Add("Subject", Subject);
mailWriter.Headers.Add("X-Mailer", "TKMP Version 3.1.2");
var logon = new TKMP.Net.AuthLogin(User, Pass);
SmtpClient smtpClient = new SmtpClient(SmtpServer, Port, logon);
smtpClient.AuthenticationProtocol = Protocol;
try
{
if (!smtpClient.Connect())
{
err_message = "接続に失敗しました";
bResult = false;
}
else
{
smtpClient.SendMail(mailWriter);
smtpClient.Close();
}
}
catch (Exception ex)
{
err_message = ex.Message;
bResult = false;
}
// エラー処理
if (!bResult)
{
if (mailClassError != null)
{
MailClassErrorArg e = new MailClassErrorArg() { Message = err_message };
// このメソッドの引数である、ErrorHandler デリゲートを呼び出す
mailClassError(e);
}
}
return bResult;
}
// エラー処理なし
public bool SendMail(string To, string From, string Subject, string Body, string To_J, string From_J)
{
return SendMail(To, From, Subject, Body, To_J, From_J, null);
}
// 日本語なし、エラー処理なし
public bool SendMail(string To, string From, string Subject, string Body)
{
return SendMail(To, From, Subject, Body, null, null, null);
}
}
}
|
|
【C#の最新記事】
- C# : PHP と連携してバイナリデータを WebClient.UploadDataAsync でそのままアップロードする
- C# : WebClient で JSON データを取得後 Json.NET でオブジェクト化( ついでに PropertyInfo でプロパティデータ一覧を foreach で取得 )
- C# : Microsoft Access の接続で、他の RDBMS( ここでは MySQL ) にエクスポートを行う
- C# : DataGridView を使用したナチュラルな行データの更新
- C# の delegate : メソッドの引数にメソッドを渡して使用する方法と、JavaScript の function(){} と同じ使用方法( 匿名 )
- PowerShell 移行用 C# コンソールアプリのコードテスト( ZIP 圧縮 )
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (4)
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (3)
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (2)
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (1)
- ComboBox : C# : Form アプリケーションで良く使うコントロール / VS2012 にて
- C# バッチビルドキットで、VB の My 名前空間を使ってクリップボードを使ったり、キーボードの SHIFT キーが押されているかを知る
- printui.dll を VB.net または C# から呼び出す/ DllImport で LoadLibraryA / VS2010
- LINQ で List
のソート - VS2010(C#)WPF : ListView 内に GridView を配置する
- Windows ストア用の System.Collections.Generic 名前空間には、SortedList はありません。
- 情報が全くみつからない Microsoft.Live
- VS2010(C#) バッチ(コンソールアプリ) Twitter 投稿
- Windows8(C#) の WebView の LoadComplete で取得した URL 内のアクセストークンを Split で取得
- Facebook C# SDK の 5.4.1.0 のダウンロード








Gmail は、




















