努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:mail:mail-016

WindowsのWSHでメールを送信する

2017/03/15
WSHでメールを送るときの自分用メモ書き

PowerShellはまだデフォルトで有効になっていない事が多い様なので、WSH+CDOでメールを送る事に。
PowerShellを使う場合でも、CDO.Message オブジェクトを作って同じことをすればよろし。

コード

JScriptで書いたコードをcscriptインタプリタ(WSH)で実行するバッチファイル。

send.bat
@echo off
cscript //nologo sender.js

CDO.Messageを使った送信。JScriptで書いてある。

sender.js
var mailObj = WScript.CreateObject("CDO.Message");
var schema  = "http://schemas.microsoft.com/cdo/configuration";
 
mailObj.Subject = "テストメール";
mailObj.From = "hogehoge@fugafuga.co.jp";
mailObj.To   = "warawara@fugafuga.co.jp";
 
mailObj.TextBody = "テストメッセージです!";
mailObj.TextBodyPart.Charset ="ISO-2022-JP";
 
mailObj.Configuration.Fields.Item(schema+"/sendusing")        = 2;
mailObj.Configuration.Fields.Item(schema+"/smtpserver")       = "mail.fugafuga.co.jp"; // smtp host
mailObj.Configuration.Fields.Item(schema+"/smtpserverport")   = 25;                    // smtp port
//mailObj.Configuration.Fields.Item(schema+"/smtpusessl")       = true;                  // use ssl
 
 
// use SMTP Auth
// mailObj.Configuration.Fields.Item(schema+"/smtpauthenticate") = 1;
// mailObj.Configuration.Fields.Item(schema+"/smtpusessl")       = true;
// mailObj.Configuration.Fields.Item(schema+"/sendusername")     = "smtp user-id";
// mailObj.Configuration.Fields.Item(schema+"/sendpassword")     = "smtp-password";
 
mailObj.Configuration.Fields.Update();
mailObj.Send();

SMTPサーバの探し方

SMTPサーバが不明な時は管理者に聞くか自前で探す。

以下は t.vodafone.ne.jp ドメイン宛てのメールを受け付けるSMTPサーバをnslookupコマンドで探す例。
msv.softbank.ne.jp がそれとわかる。

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\k896951>nslookup -type=mx t.vodafone.ne.jp
DNS request timed out.
    timeout was 2 seconds.
サーバー:  UnKnown
Address:  192.168.1.60

権限のない回答:
t.vodafone.ne.jp        MX preference = 10, mail exchanger = msv.softbank.ne.jp

(root)  ??? unknown type 41 ???

C:\Users\k896951>

drillコマンドで探す例。digコマンドでも同じ。

root@yuki:/home/k896951 # drill mx t.vodafone.ne.jp
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 10399
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; t.vodafone.ne.jp.    IN      MX

;; ANSWER SECTION:
t.vodafone.ne.jp.       60      IN      MX      10 msv.softbank.ne.jp.

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 133.242.0.3
;; WHEN: Wed Mar 15 01:49:24 2017
;; MSG SIZE  rcvd: 63
root@yuki:/home/k896951 #
documents/mail/mail-016.txt · 最終更新: 2017/03/15 19:06 by k896951

ページ用ツール