標準のソケット通信を使ってメールを送信する (Photoshop CS3/CS4)

Photoshop CS3から標準でソケット通信機能がつきました。これにより以前のバージョンではAppleScriptなどを経由しないとメール送信ができませんでしたが、CS3以降は他のアプリケーションを使わなくても単独でメール送信ができるようになりました。以前にPhotoshop CS/CS2でメールを送信するネタをやっていますので、CS/CS2ユーザーの方は以下のページを参照してください。

http://www.openspc2.org/projectX/Photoshop/0013/index.html

以下がメール送信のスクリプトになりますが、このままコピー&ペーストしただけでは動作しません。というのもメール送信の場合、各自の環境にあわせて送信メールサーバー (SMTPサーバー)と送信先を設定する必要があるためです。
SMTPサーバーは

var mailServer = "mail.dgcr.co.jp";

のmail.dgcr.co.jp部分を各自使用しているメールサーバー名 (SMTPサーバー名) にします。
次に送信先は

var mailAddress = "[email protected]";

のメールアドレスを送りたいメールアドレスに変更します。
会社などの場合、このようなメール送信プログラムが動作しないようにしている場合もあります。
うまく動かない場合には、とりあえずあきらめるか、近くにサーバー管理者がいるなら聞いてみるとよいでしょう。



// Photoshop CS3からメールを送信する
// ↓ ここは使用しているSMTPサーバー名
var mailServer = "mail.dgcr.co.jp";
// ↓ ここが送信先のメールアドレス
var mailAddress = "[email protected]";
// ↓ メールの題名
var mailTitle = "PhotoshopCS3 mail test";
// ↓ ここが送信したい本文(英語のみ)
var mailText = "Photoshop mail test";
// ↓ ここでメール送信。何カ所も送りたい場合は、↓の行を増やすだけ
sendmail(mailServer, mailAddress,mailTitle,mailText);

function sendmail(mailServer, mailAddress,mailTitle,mailText){
var sObj = new Socket();
if (sObj.open(mailServer+":25")) {
sObj.writeln("HELO "+mailServer);
var txt = sObj.read();
// ↓ここが送信者のメールアドレスになります
sObj.writeln("MAIL From: PhotoshopCS3@"+mailServer);
txt = sObj.read();

sObj.writeln("RCPT To: "+mailAddress);
txt = sObj.read();

sObj.writeln("DATA");

// ↓ ここが題名になります
sObj.writeln("Subject: "+mailTitle);
txt = sObj.read();
sObj.writeln(mailText);
txt = sObj.read();

sObj.writeln(".");
txt = sObj.read();

sObj.writeln("QUIT");
txt = sObj.read();

sObj.close();
}
}


このスクリプトはPhotoshop CS3/CS4以外にESTK2やBridge CS3/CS4、InDesign CS3/CS4で動作します。しかし、Illustrator CS3/CS4ではソケット通信をサポートしていないので動作しません。Illustratorだけできないのは困ったものです。Illustratorは自動化できるように早い時期にJavaScriptを搭載したのに、今となっては他と比べて機能不足です。


[サンプルをダウンロード]