19.8.1 ブラウザに組み込まれた電子メール送信サポートを利用

電子メールを送信する最も簡単な方法は、ブラウザのビルトイン・サポートである、ハイパーリンクの mailto 属性を利用することです。

 

Define_Com Class(#PRIM_PHBN) Name(#Send) Caption('Send') Parent(#COM_OWNER) Width(109) Height(114)

 

Define_Com Class(#prim_alph) Name(#Mailto)

Define_Com Class(#prim_alph) Name(#Parameters)

 

Evtroutine Handling(#Com_owner.Initialize)

 

#To := "Sample@_YourSite_.Com"

#CC := "CC_Sample@_YourSite_.Com"

#BCC := "BCC_Sample@_YourSite_.Com"

#Subject := "Sample subject"

#Message := "Sample message content."

 

Endroutine

 

Evtroutine Handling(#Send.Click)

 

#Com_owner.MailTo

 

Endroutine

 

Mthroutine Name(MailTo)

 

#Mailto := ("mailto:&1").Substitute( #To )

 

#Com_owner.Addparameter( CC #CC )

#Com_owner.Addparameter( BCC #BCC )

#Com_owner.Addparameter( Subject #Subject )

#Com_owner.Addparameter( Body #Message )

 

#sys_web.navigate( (#Mailto + #Parameters) current )

 

Endroutine

 

Mthroutine Name(AddParameter) Access(*Private)

Define_Map For(*Input) Class(#xDemoUnicode128) Name(#Name)

Define_Map For(*Input) Class(#xDemoUnicode4K) Name(#Value)

 

If (#Parameters = "")

#Parameters := "?"

Endif

 

If (#Parameters <> "?")

#Parameters += "&"

Endif

 

If (#Value = "")

#Value := "???"

Endif

 

#Parameters += ("&1=&2").Substitute( #Name #Value.ReplaceAll( " " "%20" ) )

 

Endroutine

この例では、SYS_WEB.navigate 用に提供された URL は次のような値を持つようになります。

注: URL には厳しい構文ルールがあり、空白スペースはサポートされません。URL によりサポートされる ASCII のサブセットにない文字を含むには、その文字をパーセント・エンコーディングする必要があります。バイト x20 は ASCII エンコーディングではブランクを意味するので、パーセント・エンコーディングの値は %20 となります。パーセント・エンコーディングの値の詳細については、「HTML URL Encoding Reference」を参照してください。

mailto 属性が使用されると、ブラウザによりデフォルトの電子メール・プログラムが開かれ、アドレスやその他リンクに指定されたパラメータが設定されます。

長所

導入が簡単で広くサポートされています。

短所

処理がクライアント側で行われ、ページにリストされた電子メール・アドレスか (これを保護する方法があるものの) スパムボットにより奪われる可能性があります。また電子メールの宛先はユーザーも見ることができます。

さらに、すべてのユーザーの PC で、サポートされる電子メールのデフォルト・アプリケーションが正しく構成されているとは限りません。