MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › メール送信プログラムの再利用について
タグ: メール送信 再利用 呼び出し
プログラムからメールを送信するコンポーネントを作る計画をしています。Sampleプログラムにある「メール送信.mzax」で送信テストしたところ、完成度も高くそのまま再利用したいと考えています。 新しく作るプログラムにボタンを設け、ボタンから「メール送信.mzax」を立ち上げる方法を教えてください。また、ボタンごとに差出人、アドレス、件名、本文を引数として渡したいのですが、可能でしょうか。 メール送信後は、メールプログラムのみ終了させる予定です。 よろしくお願いいたします。
ご質問の意図がわかりませんので、確認させてください。「メール送信.mzax」を別アプリから起動したい特別な理由はありますか。その作り方は、ご希望の処理を実現するのに適さないと思います。
単純に、このサンプルアプリを編集すれば、ご希望の処理は実現できます。ビルダーで開いていただき、「送信ボタン」の処理をご覧いただければ、この中で差出人・送信先・件名・本文を指定してメールを送信していることがわかると思います。このボタンを複製して、それぞれのボタンに応じた内容で送信するように編集すれば完成しますので、ご検討ください。
説明不足で申し訳ありませんでした。 プログラムから呼び出す意図ですが、MzPで作ったプログラムAとB等複数別にあります(それぞれのプログラムは、全く別です)。その中に、メール送信のブログラムをコピーして入れる方法もありますが、作業が煩雑になるのと、メール送信プログラムの一部を変更した場合、全てのプログラムを修正しなくてはならない等メンテナンスに問題があり、直接メール送信プログラムを呼び出せるのであれば、それのみを修正して使いたいということです。 つまり、外部参照のサブルーチンとして、プログラムA、Bからメール送信プログラムを、お互いに呼び出せないかということです。メール送信プログラムを複合コンポーネントにすれば良いかと思いますが、修正はそれぞれにしなくてはならないので、思案しているところです(複合コンポーネントを理解できていないので、間違えているかもしれません)。 考えているのは、プログラムAは通常そのプログラムのみを実行しており、共通ディレクトリに入れたメール送信プログラムを、必要なときに呼び出したいと考えています。コマンドボタンを押すと、DLLプログラムをバインドして処理が終われば解放するという方法を教えてください。 よろしくお願いいたします。
MZでは内部的に方式が異なるため、「コマンドボタンを押すと、DLLプログラムをバインドして処理が終われば解放する」ことができません。別アプリを起動することはできますが、ご希望の処理を実現するためには、少なくとも引数指定で起動する必要があり、そのためには起動対象のアプリをご自身で修正する必要があります。簡単ではないので、おすすめできません。
最も簡単な方法は、メール送信機能が必要な複数のアプリで個別にメール送信機能を作成することです。複合コンポーネントとして作成すれば、別のアプリにコピーペーストして同じ機能をすぐに追加することができます。
もしどうしても複合コンポーネントを共通化したいのであれば、複合コンポーネントをファイルとして保存して、外部参照機能で複数のアプリで共通化することは可能です。別アプリとして起動するより簡単ですが、やはり難易度は上がります。
外部参照については、下記リンク先のFAQをご覧ください。 https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/general/general_a170.html
ご教示ありがとうございます。 複合コンポーネントを作ってから、外部参照するか否かを検討します。 ありがとうございました。