メールアドレス本体だけを取得したいときNo.48111
suii さん 15/06/12 13:08
 
いつも助かっております。
関数について2点お願いします。

1.
編集中のメールの各ヘッダから、メールアドレスだけを取得する関数はあり
ますか?
またはかんたんな記述を提案いただけませんか?
dllfuncstr( "CurrentHeader", "To" );
などとすると To ヘッダ全体が取得できますが、メールアドレス本体だけを
取得したいのです。
現在は "<" , ">" などの位置、有無などを判定しながら midstr を使って
抽出しています。

2.
MakeResentForward関数で、Resent-Bcc:ヘッダを指定、さらに複数アドレス
を列挙できるようになるとありがたいです。

よろしくお願いします。

[ ]
RE:48111 メールアドレス本体だけを取得しNo.48112
秀まるお2 さん 15/06/12 14:00
 
> 編集中のメールの各ヘッダから、メールアドレスだけを取得する関数はあり
> ますか?

    SetEmailOnlyって関数があります。

    $s = dllfuncstr("SetEmailOnly",dllfuncstr("CurrentHeader","To")));

 とするとTo:ヘッダの一番最初のメールアドレスだけ取得できます。

 To:ヘッダにあるメールアドレスすべて(コンマ区切りで)取得したい場合は、

    $s = dllfuncstr("CallByEmailList","SetEmailOnly"
            , dllfuncstr("CurrentHeaderUnited","To"));

 ってすればいいです。

> MakeResentForward関数で、Resent-Bcc:ヘッダを指定、さらに複数アドレス
> を列挙できるようになるとありがたいです。

 Resent-Bcc:ヘッダの指定は後で追加した機能なのですが、MakeResentForward
関数にはその指定が用意されてませんでした。

 それはそれで、次のβ版にて第4パラメータとして追加させていただきます。

 複数アドレスを列挙するのは、単純に第1パラメータにコンマ区切りで指定す
ればいいはずだと思います。

例:
    loaddll "tkinfo.dll";
    #n = dllfunc( "MakeResentForward", "hoge1@hogehoge.com, xxxxx@hogehoge.com"
                , "open");


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:48112 メールアドレス本体だけを取得しNo.48120
suii さん 15/06/12 22:37
 
早速のお返事感謝です。

> SetEmailOnlyって関数があります。

> 複数アドレスを列挙するのは、単純に第1パラメータにコンマ区切りで指定す
> ればいいはずだと思います。

二点ありがとうございます!
マクロがだいぶスッキリしました。
複数アドレスを記述できることがわかり、メールサーバーとのやりとりも数
分の一に短縮しました。

> resent-bcc:ヘッダの指定は後で追加した機能なのですが、makeresentforward
> 関数にはその指定が用意されてませんでした。
>
> それはそれで、次のβ版にて第4パラメータとして追加させていただきます。

色々有り難うございます。

[ ]