(現在 過去ログ74 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■11268 / inTopicNo.1)  メール送信エラー
  
□投稿者/ かなや -(2018/06/29(Fri) 14:06:48)
    桐V9S、WIN10、so-net.ne.jp です。
    送信.tblに[宛先],[CC],[添付ファイル],[件名],[本文]の
    項目があり、それぞれに必要な項目値を記述した20行前後の表です。
    この表を使い、繰り返しコマンドで1行目から順次送信するのですが、
    [添付ファイル]がブランクの行でエラーが発生します。
    エラーメッセージは「ファイル名が異常です」。
    メール送信コマンド行には・・・・・・,添付ファイル=[添付ファイル],・・・・
    としてありますが、添付ファイル= のパラメータを省略すればファイル添付が
    無い場合でも正常送信します。
    止むを得ず現在は添付ファイルの有無を事前に選択し、前記パラメータを記述した
    行と、省略したコマンド行を使い分けて実行していますがこの挙動はこれで
    正常なのでしょうか。或いは他に対応策はあるのでしょうか?
    尚、受信は正常動作しています。

引用返信 [メール受信/OFF] 削除キー/
■11271 / inTopicNo.2)  Re[1]: メール送信エラー
□投稿者/ 今村 誠 -(2018/06/29(Fri) 17:20:12)
    かなやさんこんにちは
    桐V9の「メール送信」コマンドのヘルプには以下のように記載してあります。

    添付ファイル = <ファイル名>|添付ファイル = { <ファイル名1>,<ファイル名2>,… }
    <ファイル名>に、添付ファイル名を指定します(計算式)。
    複数のファイルを添付する場合は「添付ファイル = { <ファイル名1>,<ファイル名2>,… }」の形式で指定します。
    メールにファイルを添付しない場合は、このパラメータを省略します。

    マニュアルに従って記載した方が良いと思います。
    こういうときは、添付ファイルを指定する項目値が未定義値の場合と
    ふぁいるめいの記載がある場合、また記載があった場合でも
    ファイルサイズコマンドなどでそのファイルが存在するかを確かめて
    から、コマンドを使い分けたら良いと思います。
    if (#Fsize(添付ファイル名)>0)
     メール送信 [メールアドレス], \
        件名 = "新製品のご案内", \
        本文ファイル = "C:\K3\Data\DM.htm", \
        添付ファイル = "C:\K3\Data\売上.csv", \
        接続保持 = する, \
        終了状態 = &OK
    else
     メール送信 [メールアドレス], \
        件名 = "新製品のご案内", \
        本文ファイル = "C:\K3\Data\DM.htm", \
        接続保持 = する, \
        終了状態 = &OK
    end

引用返信 [メール受信/OFF] 削除キー/
■11273 / inTopicNo.3)  Re[1]: メール送信エラー
□投稿者/ ONnoji -(2018/06/29(Fri) 20:18:48)
    2018/06/29(Fri) 20:20:01 編集(投稿者)
    2018/06/29(Fri) 20:19:16 編集(投稿者)

    > 桐V9S、WIN10、so-net.ne.jp です。
    > 送信.tblに[宛先],[CC],[添付ファイル],[件名],[本文]の
    > 項目があり、それぞれに必要な項目値を記述した20行前後の表です。
    > この表を使い、繰り返しコマンドで1行目から順次送信するのですが、
    > [添付ファイル]がブランクの行でエラーが発生します。
    > エラーメッセージは「ファイル名が異常です」。
    > メール送信コマンド行には・・・・・・,添付ファイル=[添付ファイル],・・・・
    > としてありますが、添付ファイル= のパラメータを省略すればファイル添付が
    > 無い場合でも正常送信します。
    > 止むを得ず現在は添付ファイルの有無を事前に選択し、前記パラメータを記述した
    > 行と、省略したコマンド行を使い分けて実行していますがこの挙動はこれで
    > 正常なのでしょうか。或いは他に対応策はあるのでしょうか?

    ヘルプには、次のように書いてある

    メール送信  <宛先>,\
     差出人 = <文字列>,\
       CC = <文字列>,\
         :
     添付ファイル = <ファイル名>|添付ファイル = { <ファイル名1>,<ファイル名2>,… },\
         :

    この場合、[添付ファイル = ]というパラメータを記述したならば、

    <ファイル名> または { <ファイル名1>,<ファイル名2>,… } のように、ファイル名かファイル名リストを指定しなければならないでしょう。

    > 行と、省略したコマンド行を使い分けて実行していますがこの挙動はこれで
    > 正常なのでしょうか。或いは他に対応策はあるのでしょうか?

    ↑ゆえに動作は正常ですね。

    [メール送信]コマンドを[コマンド]コマンドで実行するようにすればいいのですが…。

    [コマンド]コマンド以外にも if ( #trim( [添付ファイル], 4 ) <> #u ) とか必要。

    ということで、難易度が一気にアップしてしまいますが…。

     ◇ ◇ ◇ ◇

    送信.tbl{ [宛先],[CC],[添付ファイル],[件名],[本文] }

    以下のようにバッチリ書いてしまうと、[添付ファイル]の項目値が空(カラ)だとエラーになるということなんでしょうね。

    メール送信 [宛先],\
     CC = [CC],\
     件名 = [件名],\
     本文 = [本文],\
     添付ファイル = [添付ファイル],\
      :

    [コマンド]コマンドという文字列を一括処理コマンドとして実行するコマンドがあります。

    ただし、リテラルな文字列では扱い難いので、文字列型の変数を使用するものとします。

    例では、 &command という文字列型変数を使います。

    <例>

    変数宣言 文字列{ &command }
    &command = "メール送信 [宛先], CC = [CC], 件名 = [件名], 本文 = [本文]" + #条件選択( #trim( [添付ファイル] <> #u ), ", 添付ファイル = [添付ファイル]" )
    コマンド &command

    こんな風に、[コマンド]コマンドを使うことで、[添付ファイル]の項目値が空(カラ)の場合に対処できると思いますよ。

    なお、当方はメール関係のコマンドを実際には使っていないので、すべて机上の論になります。


引用返信 [メール受信/OFF] 削除キー/
■11275 / inTopicNo.4)  Re[2]: メール送信エラー
□投稿者/ かなや -(2018/06/29(Fri) 21:07:21)
    No11273に返信(ONnojiさんの記事)
    今村さん
    ONnoji さん ありがとうございました。
    やはり「あるべき項目値が無い」のは不都合、という事ですね。
    お二方ご提案のように、事前に項目値を検査してそれに相応した
    コマンドを使い分ける、という事で対応する事と致します。

    お二方、詳細なご提案を頂きありがとうございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -