EmEditorみんなでまとめサイト

メール送信マクロ

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

概要

サクラエディタでメールを送信するマクロを参考に、EmEditor のマクロとして1から作成したものです。オリジナルの著作権はぷーる氏にあります。

以下のソースを mail.jsee などの名前で保存して、設定を編集してお使いください。「デフォルトのヘッダ」は、マクロを1回実行すると挿入されるヘッダです。ヘッダが挿入された状態でもう1回実行するとメールが送信されます。「SMTPサーバーの設定」はお使いのSMTPサーバーの設定に合わせて変更してください。

ソース

var header = {  // デフォルトのヘッダ
  From:    "sample@example.com",
  To:      "sample@example.com",
  Cc:      "",
  Bcc:     "",
  Subject: ""
};

var smtp = {  // SMTPサーバーの設定
  smtpserver:       "smtp.example.com",  // サーバー名
  smtpserverport:   25,                  // ポート
  smtpusessl:       false,               // SSLを使う (true/false)
  smtpauthenticate: false,               // SMTP認証する (true/false)
  sendusername:     "",                  // ユーザー名
  sendpassword:     ""                   // パスワード
};

// 設定ここまで

var rHeaderName  = "[a-z-]+";
var rHeaderValue = "[^\\r\\n]*(?:\\r?\\n[ \\t]+[^\\r\\n]+)*";
var rHeader = "(?:" + rHeaderName + ":[ \\t]*" + rHeaderValue + "\\r?\\n)+";
var rBody = "(?:.|\\r?\\n)*";

var reHeaderAndBody = new RegExp(
  "^(" + rHeader + ")\\r+\\n(" + rBody + ")$",
  "i");
var reHeaderNameAndValue = new RegExp(
  "^(" + rHeaderName + "):[ \\t]*(" + rHeaderValue + ")$",
  "img");

if (document.selection.isEmpty) document.selection.SelectAll();
var text = document.selection.Text.replace(/^[\r\n]+/, "");

var m = text.match(reHeaderAndBody);
if (m) {
  document.selection.Collapse();
  while (reHeaderNameAndValue.exec(m[1])) {
    header[RegExp.$1] = RegExp.$2.replace(/^\r?\n[ \t]/mg, " ");
  }
  sendMail(m[2]);
  alert("メールを送信しました");
} else {
  document.selection.CharLeft(false);
  for (var key in header) {
    document.writeln(key + ": " + header[key]);
  }
  document.writeln("");
}

function sendMail(body) {
  var mail = new ActiveXObject("CDO.Message");
  mail.TextBody = body;
  mail.TextBodyPart.Charset = "iso-2022-jp";
  mail.TextBodyPart.ContentTransferEncoding = "7bit";

  for (var key in header) {
    mail.Fields.Item("urn:schemas:mailheader:" + key) = header[key];
  }
  mail.Fields.Update();

  var ns = "http://schemas.microsoft.com/cdo/configuration/";
  mail.Configuration.Fields.Item(ns + "sendusing") = 2;
  mail.Configuration.Fields.Item(ns + "smtpconnectiontimeout") = 30;
  for (var key in smtp) {
    mail.Configuration.Fields.Item(ns + key) = smtp[key];
  }
  mail.Configuration.Fields.Update();

  mail.Send();
}

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

目安箱バナー