電子メールを送信する最も簡単な方法は、ブラウザのビルトイン・サポートである、ハイパーリンクの 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 で、サポートされる電子メールのデフォルト・アプリケーションが正しく構成されているとは限りません。

  • No labels