LoginSignup
13
12

More than 5 years have passed since last update.

JScriptでメール送信

Posted at

はじめに

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();
13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12