4

Outlook内に構築されたカスタムフォームがあり、変更が加えられるたびに電子メール通知を送信します。フォームの仕様により、フォームの終了イベントで電子メールを送信するフォームにVBScriptを少し追加する必要がありました(残念ながら)。

フォームは現在公開されており、正常に機能します。発生しているように見える唯一の問題は、次のダイアログでプロンプトが表示されるフォームを使用するユーザーは私だけであるということです。

ここに画像の説明を入力してください

フォームを使用する他の誰もダイアログを取得していません。 このダイアログボックスでは、進行状況バーが完了するまで待機してから、電子メールの送信を「許可」します(約5秒)。 私が出版社だからですか?それとも、私が遭遇しているのはクライアント側の設定ですか? この子犬を無効にするにはどうすればよいですか?

関連する場合は、ソース:

Sub SendAttach() 
   'Open mail, adress, attach report
   Dim objOutlk             'Outlook
   Dim objMail                  'Email item
   Dim strMsg
   Const olMailItem = 0

  'Create a new message
   set objOutlk = createobject("Outlook.Application")
   set objMail = objOutlk.createitem(olMailItem)
   objMail.To = Item.UserProperties("Assigned To")
   objMail.cc = Item.UserProperties("Bcc")

   'Set up Subject Line
   objMail.subject = "Work Order Notifications: " & Item.UserProperties("Work Order Number") & " - " & _
                Item.UserProperties("Subject") & " Due " & Item.UserProperties("Due Date")

   'Add the body    
   strMsg = Item.UserProperties("Specifications") & vbcrlf
   strMsg = strMsg & Item.UserProperties("Constraints")

   objMail.body = strMsg
   objMail.display 'Use this to display before sending, otherwise call objMail.Send to send without reviewing

   objMail.Send
   'Clean up
   set objMail = nothing
   set objOutlk = nothing
End sub

ここでのセキュリティは問題ではありません。誰かが私のワークステーションから電子メールを送信し始めた場合、私は電子メールのなりすましよりもはるかに大きな問題を抱えています!

ちなみに、この質問にはSOとSUのどちらが最適か判断できませんでした。必要に応じてリダイレクトしてください。

4

4 に答える 4

3

少し違うことをしようとして、しばらく前にこの問題に遭遇しましたが、この目的は同じです。HKが提供したリンクは、読みやすく、何が起こっているのかを理解するのに役立ちますが、最終的には、このページで説明されているオプションのいずれも使用しないことにしました。代わりに、私はそれをシンプルに保ち、自動化されたプロセスではなく電子メールを送信していると思い込むことにしました。これは、objMail.SendをSendKeysに置き換えて、送信ボタンを押すのを模倣することで行いました。少し醜いですが、機能しました。私の場合。

編集:

次のsendkeysステートメントを使用できます。

SendKeys "%{s}", 1

これは基本的にAlt+Sを呼び出し、Outlook送信ボタンをトリガーします。

于 2012-05-08T08:07:39.793 に答える
1

3つのオプション

- Use a pc without the MS Outlook security patch
- Use the redemption ocx (google it up to download)
- Use SMTP instead of outlook

ここでの2番目のオプションの例

Function sendmail2 (sRecipient, sSubject, sMsg, sAttach)
    on error resume next
    dim SafeItem, oItem  
    set SafeItem = CreateObject("Redemption.SafeMailItem") 'Create an instance of Redemption.SafeMailItem 
    set oItem = oApp.CreateItem(0) 'Create a new message
    With SafeItem
      .Item = oItem 'set Item property 
      .Recipients.Add sRecipient
      .Recipients.ResolveAll 
      .Subject = sSubject
      .HTMLBody = sMsg
      .Send 
    End With
  End Function
于 2012-05-08T09:54:14.903 に答える
0

同じ問題が発生しました。アプリケーションがWindows7で実行されているため、MSOutlookの代わりにWindowsメールクライアント(wlmail.exe)を使用して電子メールを送信できました。Wlmailでは、警告はデフォルトの動作のままですが、[オプション]> [セキュリティ]タブに移動して警告をオフにするオプションがあります。オフにすると、プログラムはポップアップを表示せずにメールを送信できます。

于 2015-10-20T21:40:17.120 に答える
0

もう1つの考えられる回避策は、マシンのレジストリ設定を更新することです。

https://support.microsoft.com/en-gb/help/3189806/a-program-is-trying-to-send-an-e-mail-message-on-your-behalf-warning-i

このリンクは、関連するレジストリキーを識別する方法と、設定する必要のある値の概要を示しています。これにより、セキュリティセンターの設定を上書きできます。

于 2019-02-16T01:48:06.590 に答える