メール送信

提供: MeryWiki
移動先: 案内検索

概要[編集]

メールを送信します. 現状では gmail での動作を確認しています.

利用方法[編集]

  • メール送信マクロのコード中,「MY_ADDRESS」「PASSWORD」を設定する.
  • メール作成マクロを実行.
  • To, Subject および横線以降の本文を記述.
  • メール送信マクロを実行.

コード[編集]

メール作成[編集]

#title="メール作成"
 
doc = Document;
if (doc.Path != '' || doc.Text != '') {
   Editor.NewFile();
   doc = Editor.Documents.Item(Editor.Documents.Count-1);
}
doc.Text = 'To:\nCc:\nBcc:\nSubject:\n------------------------------------------------------------------------\n';
doc.Selection.EndOfLine();

メール送信[編集]

#title="メール送信"
 
var MY_ADDRESS = '***@gmail.com';   // メールアドレス
var PASSWORD = '***';               // パスワード
 
var Mailer = new ActiveXObject('CDO.Message');
Mailer.From = MY_ADDRESS;
Mailer.BodyPart.Charset = 'utf-8';
 
// ドキュメントを解析してメール作成
var lines = Document.Text.split('\n');
var setFlag = 0;
for (var i=0; i<lines.length; i++) {
  var head = lines[i].split(':')[0].toLowerCase();
  switch (head) {
  case 'to':
    Mailer.To = lines[i].substring(head.length+1);
    setFlag |= 1;
    break;
  case 'cc':
    Mailer.CC = lines[i].substring(head.length+1);
    break;
  case 'bcc':
    Mailer.BCC = lines[i].substring(head.length+1);
    break;
  case 'subject':
    Mailer.Subject = lines[i].substring(head.length+1);
    setFlag |= 2;
    break;
  }
  if (/^--+$/.test(head)) {
    lines.splice(0, i+1);
    Mailer.TextBody = lines.join('\n');
    setFlag |= 4;
    break;
  }
}
 
if (setFlag != 7) {
  Alert('メール送信には To, Subject, 本文が必要です.');
  Quit();
}
 
var cdoSendUsingPickup = 1;   // Send message using the local SMTP service pickup directory.
var cdoSendUsingPort = 2;     // Send the message using the network (SMTP over the network). 
 
var cdoAnonymous = 0;         // Do not authenticate.
var cdoBasic = 1;             // Use basic (clear-text) authentication.
var cdoNTLM = 2;              // Use NTLM authentication.
 
// メール送信設定
var schemas = 'http://schemas.microsoft.com/cdo/configuration/';
Mailer.Configuration.Fields.Item(schemas + 'sendusing') = cdoSendUsingPort;
Mailer.Configuration.Fields.Item(schemas + 'smtpserver') = 'smtp.gmail.com';
Mailer.Configuration.Fields.Item(schemas + 'smtpserverport') = 465;
Mailer.Configuration.Fields.Item(schemas + 'smtpusessl') = true;
Mailer.Configuration.Fields.Item(schemas + 'smtpauthenticate') = cdoBasic;
Mailer.Configuration.Fields.Item(schemas + 'sendusername') = MY_ADDRESS;
Mailer.Configuration.Fields.Item(schemas + 'sendpassword') = PASSWORD;
Mailer.Configuration.Fields.Item(schemas + 'smtpconnectiontimeout') = 60;
Mailer.Configuration.Fields.Update();
 
Mailer.Send();