2019年9月24日火曜日

FileMaker 18 標準機能でHTMLメールを送信|Send HTML Email with cURL

FileMaker 18 Send HTML Mail with cURL
FileMaker 18 から「スクリプト:URL から挿入」(cURL)でメールの送信が可能になりました。
Emailの仕様が分かっていれば、HTMLメールの作成、送信元・送信先の日本語表示の変更が可能になります。(今回は書いていませんが複数の添付ファイルも可能)

FileMaker 18 標準機能でHTMLメール,複数添付ファイルを送信|Send HTML Email with cURL
https://qbxxdp.blogspot.com/2019/10/sendmail-curl-attached-file.html

こんな感じのHTMLメールをFileMakerの「スクリプト:URL から挿入」で送信する場合、

メールのソースは、以下のようになります。

Subject: =?utf-8?B?44OG44K544OI?=
To: "=?utf-8?B?6YCB5L+h5YWI6KGo56S65ZCN?=" <送信先メールアドレス>
From: "=?utf-8?B?6YCB5L+h5YWD6KGo56S65ZCN?=" <送信元メールアドレス>
Content-Type: multipart/alternative; boundary=5CC6E4B8-BA54-FC4C-AAC5-3E824735B3F3

--5CC6E4B8-BA54-FC4C-AAC5-3E824735B3F3
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

44Oc44O844Or44OJDei1pA00OHB0IDcycHQ=

--5CC6E4B8-BA54-FC4C-AAC5-3E824735B3F3
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiAnTWVpcnlvJztmb250LXdlaWdodDogYm9sZDsiID4m
IzEyNTA4OyYjMTI1NDA7JiMxMjUyMzsmIzEyNDg5Ozxici8+PC9zcGFuPjxzcGFuIHN0eWxlPSJj
b2xvcjogI0ZGMjcxMjsiID4mIzM2MTk2Ozxici8+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6IDQ4cHg7IiA+NDhwdCA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNzJweDsiID43
MnB0PC9zcGFuPg==

--5CC6E4B8-BA54-FC4C-AAC5-3E824735B3F3--

説明
以下は、
Content-Type: *****; charset=utf-8
Content-Transfer-Encoding: base64
の形式のメールになります。
本文や件名、送信先・送信元表示名を utf-8 で base64エンコードします。
{boundary}は、各パートの区切りになります。
以下のようなテンプレートを用意して各項目をbase64エンコードし、記述すれば準備完了。


Subject: =?utf-8?B?{Subject:Base64エンコードした件名}?=
To: "=?utf-8?B?{To_Name:Base64エンコードした宛先表示名}?=" <{To_Address}>
From: "=?utf-8?B?{From_Name:Base64エンコードした送信元表示名}?=" <{From_Address}>
Content-Type: multipart/alternative; boundary={boundary}

--{boundary}
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

{BodyTEXT:Base64エンコードした本文(プレーンテキスト)}
--{boundary}
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

{BodyHTML:Base64エンコードした本文(HTML)}
--{boundary}--

スクリプト:URL から挿入
URLを指定:
smtp(s)://SMTPサーバー:ポート
(例:
smtp://smtp.abc.com:587
smtps://smtp.abc.com:465
)
オプション:
--user {SMTP_account}:{SMTP_password}
--mail-from {mail-from}
--mail-rcpt {mail-rcpt}
-T $DATA
--ssl-reqd
/*SSLの場合、--ssl-reqd を記述*/
$DATA は、「変数を設定」でメールのソースを設定しておく。

詳しくは、サンプルファイルで
https://sites.google.com/site/scriptmakerps/other-than-plug-ins/send-html-email-with-curl

※メールのソースをファイル保存すれば、curl.exe https://curl.haxx.se/ や、Windows 10から標準の cURL、OSX(Mac)の cURL(※たしか標準)を使い、FileMaker 17以下でもHTMLメールの送信が可能です。

2019年9月12日木曜日

FileMaker Server パスワード無しのファイルを共有|FileMaker Server コマンドライン


FileMaker Server コマンドライン

fmsadmin set serverconfig securefilesonly=false

2019年8月27日火曜日

FileMaker WEBビューアに表示されたページを画像として保存 Web Viewer Capture

FileMaker WEBビューアに表示されたページを画像として保存。
 動作検証
Windows 10
FileMaker 16, 17, 18
プラグイン:ScriptMakerPSが必要
サンプルファイル
https://sites.google.com/site/scriptmakerps/example/web-viewer-capture




$top=GetLayoutObjectAttribute ("WEB01" ; "top")
;$left=GetLayoutObjectAttribute ("WEB01" ; "left")
;$height=GetLayoutObjectAttribute ("WEB01" ; "height")
;$width=GetLayoutObjectAttribute ("WEB01" ; "width")

FileMaker 16 から、上記の様な感じでWEBビューアの位置情報を取得すると、"top"、"left"は、PC画面全体を基準とした位置を返します。コレを利用しPowerShellでWEBビューアに表示された部分を画像として保存することが出来ます。

PowerShell例:

$W={width};
$H={height};
$T={top};
$L={left};
Add-Type -AssemblyName System.Windows.Forms ;
Add-Type -AssemblyName  System.Drawing  ;
$rect = [System.windows.forms.Screen]::PrimaryScreen.Bounds;
$bitmap = new-object System.Drawing.Bitmap( $W, $H, [System.Drawing.Imaging.PixelFormat]::Format32bppArgb);
$graphics = [System.Drawing.Graphics]::FromImage($bitmap);
$graphics.CopyFromScreen( $L, $T,   0, 0,   $bitmap.Size , [System.Drawing.CopyPixelOperation]::SourceCopy);
$memStream = New-Object System.IO.MemoryStream;
$bitmap.Save($memStream,[System.Drawing.Imaging.ImageFormat]::Png );
[byte[]]$bytes = $memStream.ToArray();
$result=([convert]::ToBase64String($bytes)).ToString();
Write-Output  $result;

上記を実行してキャプチャ画像をpngにして、Base64で取得し、FileMakerで画像へ変換。頑張ればプラグイン無しでも実行可能。

サンプルは、プラグイン:ScriptMakerPSを使用。
サンプルファイル
https://sites.google.com/site/scriptmakerps/example/web-viewer-capture