• 締切済み

VBからBeckyを使用したメール送信(Bccを設定したい)

初投稿です、宜しくお願いします。 VBよりBeckyを使用して、メール送信をしたいのですが、以下の方法だとBccは無視されてしまいます。(BeckyのVer.2.21.02 の更新履歴にあります。) Shell "C:\Program Files\RimArts\B2\B2.exe mailto:aaa@aa.com?cc=bbb@aa.com?bcc=ccc@aa.com&subject=テスト&body=テストです", vbNormalFocus 下記環境で開発を行なっています。 Visiual Basic 6.0、Becky2.4501、Access2002 VBからBeckyを使用して、Bccを設定できるやり方がありましたら、ご教授下さい。 追伸:別のやり方として以下の方法も試しました。 Accessオブジェクトを使用したSendObject命令を使用すると、 Bccは設定できますが、今度は署名が表示されません。 署名コンボ(Alt + G)をいじると署名が表示されるようになるので、 SendKeys "%G{UP}{DOWN}",False で署名コンボを変更するよう命令を送りましたが駄目でした。 署名コンボを認識してくれないようです。 ちなみに、メニューバーのファイル(Alt + F)を開くように SendKeys "%F",False とすると、メニューバーのファイルは開きました。 以上、宜しくお願い致します。

noname#70141
noname#70141

みんなの回答

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.2

こんにちは。 コマンドラインからの mailto:... は RFC2368 が BCC を禁止していますので、その動きで仕様通りと思います。回答者も切り分けしてみました。README.txt でも改修履歴がありますし。 ところで、Visual Basic ではありませんが、Windows 自動化ソフト UWSC Pro でトライしてみました。結果良好です。SendKeys コマンドを利用可能な言語処理系でも頑張れば出来そうな予感がしますがどうでしょうかね。。 (スクリプト例) 新規メールウインドウを出しておいて実行します。to:, cc:, bcc:, subject:, body: を設定します。最後にシグネチャを追加します。 dim wid wid = GETID("新規", "Becky2ComposeFrame") CTRLWIN(wid, ACTIVATE) SENDSTR(wid, "to@example.com", 1, TRUE) SENDSTR(wid, "cc@example.com", 2, TRUE) SENDSTR(wid, "bcc@example.com", 3, TRUE) SENDSTR(wid, "件名雛型", 4, TRUE) SCKEY(wid, VK_TAB) SCKEY(wid, VK_CTRL, VK_A) SENDSTR(0, "本文雛型") SCKEY(wid, VK_CTRL, VK_V) SLEEP(3) SCKEY(wid, VK_ALT, VK_G, VK_DOWN) SCKEY(wid, VK_ENTER)

参考URL:
http://www.uwsc.info/
noname#70141
質問者

お礼

アドバイスをいただき、ありがとうございます。 sendkeysコマンドを使用する方法を検討しましたが、欠点がありました。 beckyを起動しておいて、becky上の入力モードを全角にしておきます。その後、sendkeysコマンドを使用してbeckyの本文を入力したことにすると、英数字の部分で処理が止まったり、変な動きになることが分かりました。 よって、sendkeysコマンドを使用した方法は取りやめになりました。 最終的には、Bccを設定することが優先事項のため、accessオブジェクトのsendobject命令を使用することになりました。署名についてはbeckyで設定されたものが表示されないので、本文の最後にプログラム側で設定することにしました。 結局、妥協してしまいました。 ご協力ありがとうございました。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

よく分からないけど、bcc=cccの直前の?って?じゃなくて&なんじゃないの? Shell "C:\Program Files\RimArts\B2\B2.exe mailto:aaa@aa.com?cc=bbb@aa.com&bcc=ccc@aa.com&subject=テスト&body= テストです", vbNormalFocus この文字が間違っててBCCが反応してないなんて事はないよねぇ?

noname#70141
質問者

お礼

アドバイスありがとうございます。 しかし、"?"→"&"に変更してもできません。

関連するQ&A

  • Becky2の全般的な設定がエラーになってしまいます

    Becky2を使用しています。 設定の変更をしたくて「全般的な設定」のアイコンをクリック、またはメニューバーから「全般的な設定」をクリックすると以下のようなエラーメッセージが出ます。 >問題が発生したため、B2.exeを終了します。ご不便をおかけして申し訳ありません。 下に「デバッグ」と「エラー報告を送信する」「送信しない」と3つ出ていますが、どれを押してもBeckyが落ちてしまいます。 再インストールをしてみましたが、駄目でした。 OSはWindows XPでBeckyのバージョンは211.02です。 どなたかご存知の方がいらっしゃいましたら、教えて下さい。 どうぞよろしくお願いいたします。

  • VB6.0でのバイナリデータの扱いについて

    文字コードについて 現在ハンディターミナルとPCとの通信を行うプログラム(VB6.0)を作成しています。      プログラムの一部で下のような記述があります。 ------------------ BCC = Chr(aa) ------------------ 変数aaには数字の226が入り、変数BCCには226に該当する文字列が格納されるはずですが、BCCには文字化けした文字が入り困っています。 調べた結果VB6.0は文字列をunicodeとして扱い、その結果内部的な文字列変換が理由で、文字コード上に存在しない幾つかのバイナリデータは、Chr関数で扱えないというところまではわかりました。 そこでChr命令をChrB命令に変更しましたが、求めている答えが返ってきませんでした。 文字コード表では"DF"までは存在しますが、それ以降の文字は存在しないため扱うのは無理なのでしょうか? StrConvなどを使用すれば可能なのかどうか等考えているのですがわからない状況です。 どなたかご教授願えないでしょうか。宜しくお願い致します。

  • VB6.0でのバイナリデータの扱いについて

    現在ハンディターミナル(HT)とPCとの通信を行うプログラム(VB6.0)を作成しています。 このプログラムは元々VB2.0で作成されたものをベースとしてVB6.0で再作成しているものです。 プログラムの中でHTとPCとの通信エラーを防ぐため、データ行のBCCを計算しHTに送信している 部分があります。VB6.0ソースを下に表示します。 (実際は、計算したBCCをデータ(下のCheckString変数)の最終行にくっつけてHTに送信していますが、ここではBCCのみ送信しています) -------------------------------------------------○VB6.0 /* 最初にBCCを計算して返し、HT側へ送信している */ /* BCCはstring */ Dim i As Integer, aa As Integer,BCC as String aa = 0 For i = 1 To Len(CheckString) aa = aa Xor Asc(Mid(CheckString, i, 1)) Next BCC = Chr$(aa) frmMain.MSComm1.InBufferCount = 0 frmMain.MSComm1.Output = BCC ------------------------------------------------ VB2.0ではAscB,LenB,MidBのところをVB6.0ではAscB,LenB,MidBをAsc,Len,Midへ変更しています。通常はこれで問題ありませんでしたが、BCCの計算の結果aa = 226となった場合にBCCに文字化けした"r"のような文字がはいっていました。プログラムの中でBCC変数をテキストへ吐き出し、バイナリエディタで確認しましたが"E2"となるところに"00"と空白となっており、これが原因でHTとPC間での通信が完了しません。 (テキスト送信時にStringのため文字化けが原因?) 前回の質問でSTRING型を使用せずにバイナリ型配列で処理する事や、いままで暗黙のうちにUnicode⇔SJIS変換を行ってくれていた部分をStrconvを使用し自前で処理しなければいけないというご指摘を受けたのですが、上のプログラムではどのように修正が必要なのでしょうか?どなたかご教授の程宜しくお願い致します。

  • メニューバーの使用可不可の

    初めて投稿いいたします。VB初心者です。 VB6.0(SP6)で、ちょっとしたテストアプリを作成中です。 メインフォーム(MDI)のメニューバーとツールバーコントロールの使用可能(不可)を切り替える方法を教えてください。 子フォームのボタンをクリックした際、内部処理実行中に、上記コントロールを一時的に使用不可とさせたい次第です。 現状は、下記のような方法で実現させていますが、あまりスマートな方法とは言えないように思います。 -----禁止させる場合-------------------------------- Private Sub CommandDisable_Click() 'メニューバー禁止 MDIForm1.mnuFile.Enabled = False   'ツールバーボタン禁止 MDIForm1.Toolbar1.Buttons(1).Enabled = False End Sub -------------------------------------------------- -----禁止を解除させる場合-------------------------- Private Sub CommandEnable_Click() 'メニューバー禁止 MDIForm1.mnuFile.Enabled = True   'ツールバーボタン禁止 MDIForm1.Toolbar1.Buttons(1).Enabled = True End Sub -------------------------------------------------- 上記の方法で、メニューバーまたはツールバーともにグレイ表記となり、割り当てた機能が呼び出されることを防ぐことは実現出来ています。 しかし、メニューバー、ボタンともに、クリックだけは出来てしまいます。 どなたか、クリックも含めて、使用不可とさせる方法を教えてください。 よろしくお願いします。

  • パソコン操作について教えてください。

    パソコン操作について教えてください。 子供がキーボードをたたいて遊んでいたのですが、それ以来メニューバーが出なくなって困っています。わたしはインターネット使用が主で、サイトを「お気に入り」に入れて順次閲覧しておりまして、ALTキーをおせばメニューバーが出てくるのですが、その時だけで又押し直さなければならない状態です。 いつでもメニューバーが出ている状態に戻したいのですが、方法を教えてください。お願いします!!

  • Accessから複数アドレスにメール送信

    かなり初歩的な質問なのかもしれませんが、どうしても進まないのでどなたかご教授お願い致します。 access2003からBasp21を使用してメール送信フォームを作ってます。複数アドレスに一括で送れるように、宛名フォームから氏名を選択(例として3件)すると、メール送信フォームの「bcc」ボックスに、 "bcc" & vbTab & "abc@xx.com" & vbTab & "def@xx.jp" & vbTab & "ghi@xx.com" と入るようにし、送信ボタンクリックで下記のようなコードを書いてます。 Dim bobj As Object Dim svname As String Dim ID As String Dim Mailto As String Dim MailFrom As String Dim subj As String Dim Body As String Dim pass As String Dim msg As Variant '送信チェック用 'SMTPサーバ名:ポート番号:タイムアウト秒 svname = Me.[smtpサーバー] & ":" & Me.[ポート番号] & ":" & Me.[タイムアウト秒] 'ログインID ID = Me.[ログインID] 'パスワード pass = Me.[パスワード] 'オブジェクトを作成 Set bobj = CreateObject("basp21") '宛先 Mailto = Me.[bcc] '送信者 MailFrom = Me.[送信者] & "<" & ID & ">" & vbTab & ID & ":" & pass '件名 subj = Me.[件名]   '本文 Body = Me.[テキスト169] 'メッセージの送信 msg = bobj.SendMail(svname, Mailto, MailFrom, subj, Body) ' 送信チェック If msg <> "" Then MsgBox "送信できませんでした。" & vbCrLf & msg, vbOKOnly + vbCritical, "エラー" Else MsgBox "送信しました", vbOKOnly + vbInformation, "完了" End If これを実行すると、 「送信できませんでした。 555 5.5.4 Unsupported option: & to "bcc" & vbTab & "abc@xx.com" & vb」 というようなメッセージが出て送信できません。 Mailto = Me.[bcc] の所を、 Mailto ="bcc" & vbTab & "abc@xx.com" & vbTab & "def@xx.jp" & vbTab & "fhi@xx.com" にすれば送信できるのですが、送信先は毎回変わるので Me.[bbc] にアドレスを代入して送信できるようにするにはどうすればいいのでしょうか?

  • BCCメールは「BCCを使って送信された」「BCCに教えられない誰かが入っている」と言うこともわからないのですか?

    受信者から見て CCはアドレスが見えるから「CCに誰がはいってる」と言うのがわかるのですが BCCはアドレスが見えなくても「BCCに誰か入っている」ということもわからないのですか? 送信者のアドレスのみの時のノーマルメールとBCCが含まれているメールではぱっと見、同じなのでしょうか? ちなみに使用メーラーはMicrosoft Office Outlook 2003です。 よろしくお願いします。

  • vistaのコマンドバーの表示方法

    vista使用で、「お気に入り」に追加しているどのサイトを開いてもメニューバー(ファイル、編集etc)が消えてしまい、コマンドバーの「整理」ボタンからレイアウトの表示を行おうとしたのですが、コマンドバーも消えてしまっていて、メニューバーの再表示ができません。 整理ボタン(コマンドバー)の再表示方法を教えて下さい。 補足 Altキーを押してもメニューバーは表示されませんでした よろしくお願い致します

  • エクセル2003で作成したVBAを2007で使用したい

    エクセル2003で下記のようなVBAを作成していました。 作成した物を使用者が印刷設定を変更できないように ブックを開くと同時に印刷ボタンなどを非表示にしていたのですが・・・ 2007でも使用出来るようにしたいと思ったのですが 2007ではこのままではエラーが出てしまうようです。 2007はまったく扱ったことがないのでどのようにすればよいかわかりません。 どなたかご教授いただけたらと思います。 Private Sub Workbook_Open() Application.DisplayStatusBar = False 'ステータスバー非表示 'ブックを開く時ページ設定と印刷を非表示 On Error Resume Next Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("ページ設定(&U)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷(&P)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷プレビュー(&V)").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷範囲(&T)").Enabled = False Application.CommandBars("Standard").Enabled = False End Sub

  • 他アプリの操作(メニューバーの矢印)

    現在、VB6.0を使用して市販のアプリケーションを操作するソフトを作成しております。 その市販のソフトで、メニューバーの操作をしたいのですが、通常メニューバーの項目については GetMenuやGetSubMenuやGetMenuItemCountなどのAPIを使用して操作できる所までは出来たのですがメニューの中に階層がある場合 (※メニューの項目で階層に分かれてて右端に▲が表示されている) の操作をどの様にしたらいいのかが判らず困っております。 何かいい方法があればご教示下さい。