• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「mailto:」の書式)

mailto:の書式について

このQ&Aのポイント
  • 「mailto:」で宛先を「Name <Address>」の形式で表示させることは可能でしょうか?
  • mailto:"Name" <Address>の形式でShellExecute関数でメールの起動を試みましたが、エラーとなりました。
  • アドレスの書式で名前を指定する正しい書き方をご存知の方、コメントを頂けると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • wogota
  • ベストアンサー率42% (66/154)
回答No.2

Officeを使用されているということですので、カテゴリとしては、 VBAが最適なように見えますが、ソースの中身はAタグの 内容そのままのようですので、HTMLで質問されたのでしょう。 送信先にメールアドレス以外の任意の文字列を表示させたいときは、 次のようになります。 mailto:?to=hoge&gt;foo@baa.com&lt; こうすると、メールのTo欄には「hoge」と表示されます。 &gt;と&lt;はHTMLタグとして使用されている<と>に 対応します。 ですので、例示されているVBAに当てはめると次のようになります。 'メーラを起動する。 lngRet = ShellExecute(HWnd, _ "open", _ "mailto:?to=" & _ strAddressName& _ "&gt;" & strAddress & "&lt;" & _ "&subject=" & strTitle & _ "&cc=" & strCcAddress & _ "&bcc=" & strBccAddress & _ "&body=" & strMailBody, _ vbNullString, _ CurDir$, _ SW_SHOWNORMAL) ここで、表示させる名前をstrAddressNameに設定することを想定しています。 strAddressName=""であれば、メールアドレスが表示されます。 ただし、この動作はOutlookExpressでしか確認していません。 他のメーラで同じ動作をするかはわかりません。 これでよろしいでしょうか。

noname#4564
質問者

お礼

  > ただし、この動作はOutlookExpressでしか確認していません。 > 他のメーラで同じ動作をするかはわかりません。 OutlookExpressで下記の書式を動作確認してみました。 mailto:?to=hoge&gt;foo@baa.com&lt; (1) 「hoge」がアドレス帳に存在しない場合、宛先欄には「hoge」と表示されるが、   「foo@baa.com」は無視される。 (2) 「hoge」がアドレス帳に登録済みのアドレスと完全一致、または、パターンマッチ   (たぶん前方一致だと思いますが、正確な条件は不明)する場合は、該当アドレス   が参照される。(この場合も、「foo@baa.com」は無視される) という訳で、残念ながらOutlookExpressでは、この書式は期待した動作をしないようです。 以上、結果報告です。(ご参考まで・・・)  

noname#4564
質問者

補足

  コメントありがとうございます。 結論を申しますと、COMベースの方法(単発メールなら、OutLook.Application で。複数メールの一括 送信ならCDOで)を採ることにしました。 「mailto:」の使用を見送ったのはNo.1さんへの補足に書いた理由もありますが、一括処理に向かない ( = 単発のメールしか送信できない)と判断したのが大きな要因です。 何といっても、コンポーネントを使えば、URLエンコードを自前で処理する必要がないので楽です。(笑 手抜きかもしれませんが・・・。(^-^; という訳で、書いて頂いた方法については残念ながら動作確認しておりません。m(_ _)m (後日結果報告致します) ありがとうございました。  

その他の回答 (1)

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.1

タグと判断されるからでしょう。 ソースを書いてみてください。 <a href="mailto:mailto:"Name" <Address>">メールを出す</a> と書いているのですか? それは無理ですよ。 ↓これは何でしょう? HTMLにそのような書き方は無いと思いますけど? >問題の箇所のソース(抜粋)は下記の通りです。 >'メーラを起動する。 >lngRet = ShellExecute(HWnd, _ >"open", _ >"mailto:" & _ >strAddress & _ ---- 以下省略 ------

noname#4564
質問者

お礼

  コメントありがとうございます。 「mailto:」を使用したのは、COM(オートメーション)より手軽そうに思えたからなのですが、 特殊文字のエンコード処理が煩雑なことと、ファイルを添付する方法がわからない、という 問題があり、結局COMベースの方法(CreateObject("OutLook.Application")........)を採る ことに決めました。 お手数をお掛けしました。  

関連するQ&A