はじめに
JScriptからSMTP経由でメールを送信するサンプルコードです。
「CDO.Message」を利用します。
メール送信
単純なサンプルコードです。
// 「CDO.Message」オブジェクト生成
var cdoMsg = new ActiveXObject("CDO.Message");
// 送信元設定
cdoMsg.From = "from@xxx.com";
// 送信先設定
cdoMsg.To = "to@xxx.com";
// 題名設定
cdoMsg.Subject = "題名";
// 本文設定
cdoMsg.Textbody = "本文";
// ※1
// CDOオブジェクトコンフィグ用NAMESPACE
var namespace = "http://schemas.microsoft.com/cdo/configuration/";
// 送信にネットワークを利用、「2」(cdoSendUsingPort)を設定
cdoMsg.Configuration.Fields.Item(namespace + "sendusing") = 2;
// SMTPサーバ設定
cdoMsg.Configuration.Fields.Item(namespace + "smtpserver") = "smtp.server";
// SMTPポート設定
cdoMsg.Configuration.Fields.Item(namespace + "smtpserverport") = 25;
// ※2
// コンフィグアップデート
cdoMsg.Configuration.Fields.Update();
// メール送信
cdoMsg.Send();
// 後処理
cdoMsg = null;
ファイル添付
ファイルを添付する場合は、「※1」部分に以下を付け足します。
// ファイルを添付
cdoMsg.AddAttachment("添付するファイルのフルパス");
SMTP認証
SMTP認証が必要な場合、「※2」 部分に以下を付け足します。
// Basic認証、「1」(cdoBasic)を設定
cdoMsg.Configuration.Fields.Item(namespace + "smtpauthenticate") = 1;
// 認証ユーザ設定
cdoMsg.Configuration.Fields.Item(namespace + "sendusername") = "username";
// 認証パスワード設定
cdoMsg.Configuration.Fields.Item(namespace + "sendpassword") = "password";
Gmailからメール送信
GmailのSMTPからメールを送信するサンプルです。
Gmailの場合、認証、SSL通信の設定が必要となります。
// 「CDO.Message」オブジェクト生成
var cdoMsg = new ActiveXObject("CDO.Message");
// 送信元設定
cdoMsg.From = "username@gmail.com";
// 送信先設定
cdoMsg.To = "to@xxx.com";
// 題名設定
cdoMsg.Subject = "題名";
// 本文設定
cdoMsg.Textbody = "本文";
// CDOオブジェクトコンフィグ用名前空間
var namespace = "http://schemas.microsoft.com/cdo/configuration/";
// 送信にネットワークを利用、「2」(cdoSendUsingPort)を設定
cdoMsg.Configuration.Fields.Item(namespace + "sendusing") = 2;
// SMTPサーバ設定
cdoMsg.Configuration.Fields.Item(namespace + "smtpserver") = "smtp.gmail.com";
// SMTPポート設定
cdoMsg.Configuration.Fields.Item(namespace + "smtpserverport") = 465;
// Basic認証、「1」(cdoBasic)を設定
cdoMsg.Configuration.Fields.Item(namespace + "smtpauthenticate") = 1;
// 認証ユーザ設定
cdoMsg.Configuration.Fields.Item(namespace + "sendusername") = "username@gmail.com";
// 認証パスワード設定
cdoMsg.Configuration.Fields.Item(namespace + "sendpassword") = "password";
// SSLを使用
cdoMsg.Configuration.Fields.Item(namespace + "smtpusessl") = true;
// コンフィグアップデート
cdoMsg.Configuration.Fields.Update();
// メール送信
cdoMsg.Send();
// 後処理
cdoMsg = null;
「Message」オブジェクト
送信元「From」送信先「To」題名「Subject」本文「Textbody」などは、
「IMessage」インターフェースで定義されています。
一部分を以下にまとめました。
名前 | 概要 |
---|---|
TO | 送信先メールアドレス |
From | 送信元メールアドレス |
Subject | 題名 |
TextBody | 本文 |
HTMLBody | HTML形式本文 |
CC | CC先アドレス |
BCC | BCC先アドレス |
ReplyTo | 返信先アドレス |
これらは、フィールドを設定する事でも可能です。
// 送信元設定
cdoMsg.From = "from@xxx.com";
// 送信先設定
cdoMsg.To = "to@xxx.com";
// 題名設定
cdoMsg.Subject = "題名";
// 本文設定
cdoMsg.Textbody = "本文";
↑↑↑この部分は、↓↓↓これに置き換えても可能です。
最後にコンフィグアップデートを忘れないで下さい。
// 送信元設定
cdoMsg.Fields.Item("urn:schemas:mailheader:from") = "from@xxx.com";
// 送信先設定
cdoMsg.Fields.Item("urn:schemas:mailheader:to") = "to@xxx.com";
// 題名設定
cdoMsg.Fields.Item("urn:schemas:mailheader:subject") = "題名";
// 本文設定
cdoMsg.Fields.Item("urn:schemas:httpmail:textdescription") = "本文";
// コンフィグアップデート
cdoMsg.Fields.Update();