C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

webメーラーからメールを作成したい

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■89430 / inTopicNo.1)  webメーラーからメールを作成したい
  
□投稿者/ くろ (1回)-(2018/11/28(Wed) 15:55:17)

分類:[VB.NET/VB2005 以降] 

2018/11/28(Wed) 15:56:36 編集(投稿者)

こんにちは。
vs2010 vb webアプリで開発してます。

やりたいことは以下の通りです。

1)自作webアプリからメーラーの「Active! mail」を開く
 この時自作webアプリの隣のタブで開きたい

2)1)にログイン

3)「メール作成」というボタンを押す

4)宛先に任意のメールアドレスを入力

下のソースは、別窓で開いてしまいますが1)〜2)までは何とかできました。
3)のボタンを押したいのですが、ログイン画面とは異なりソースを見てもフォーム名称などが掲載されていません。

これって、無理っていう事なのでしょうか?
それとも何とかなるものなのでしょうか??

良かったらどなたか教えてください。
どうぞよろしくお願いします。

Dim objIE = CreateObject(Request.Browser.Browser & ".Application")

With objIE
.Visible = True
.Navigate("https://acmail6.secure.ne.jp/am_bin/amlogin")

'ログインIDなど
With objIE.Document.forms("login")

.elements("am_authid").value = "id"
.elements("am_authpasswd").value = "pass"
.submit()

End With

End With

objIE = Nothing
引用返信 編集キー/
■89432 / inTopicNo.2)  Re[1]: webメーラーからメールを作成したい
□投稿者/ PANG2 (249回)-(2018/11/28(Wed) 17:01:51)
No89430 (くろ さん) に返信
> 3)のボタンを押したいのですが、ログイン画面とは異なりソースを見てもフォーム名称などが掲載されていません。

IE開発者ツールでボタンを見つけるとか。

Internet ExplorerのF12開発者ツールの使い方
https://www.buildinsider.net/web/ief12devtools/01

DOM Explorer
要素の選択
引用返信 編集キー/
■89434 / inTopicNo.3)  Re[2]: webメーラーからメールを作成したい
□投稿者/ くろ (2回)-(2018/11/28(Wed) 18:08:10)
2018/11/29(Thu) 13:47:55 編集(投稿者)

No89432 (PANG2 さん) に返信
> ■No89430 (くろ さん) に返信
>>3)のボタンを押したいのですが、ログイン画面とは異なりソースを見てもフォーム名称などが掲載されていません。
>
> IE開発者ツールでボタンを見つけるとか。
>
> Internet ExplorerのF12開発者ツールの使い方
> https://www.buildinsider.net/web/ief12devtools/01
>
> DOM Explorer
> 要素の選択

投稿ありがとうございます!

「IE開発者ツール」・・・こういうものがあったのですね。
知りませんでした。

開いてみてみたのですが、、難しそう。
試行錯誤してみます。

だめそうならまた質問させてもらいますね。
良かったらまた教えてください。<m(__)m>

---------------------------------
DOM Explorer-要素の選択で、押したい箇所を選択してみました。
以下表示された「DOM Explorer」です。

<H2 class="am6 menu_compose">メール作成</H2>

??名前がわからない??と思い、今度は「DOM Explorer」の中を「click」で検索してみました。するといくつか検索された中から「これじゃない?!」という箇所が見つかりました。
以下「DOM Explorer」抜粋です。


<TABLE onclick="amtop.changeContents('smail')" id=smail class=unselected_tab cellSpacing=0 cellPadding=0 border=0><TBODY>
<TR>
<TD>
<H2 class="am6 menu_compose">メール作成</H2></TD></TR></TBODY></TABLE>



名前はわからないけどidが・・・!
そこで、次のようにしてみました。
Dim obj1 = objIE.Document.GetElementById("smail")
If not obj1 Is Nothing Then
obj1.click()
End If


クリックできました!
やったー!

ありがとうございます!教えていただいたおかげです!

まだ解決できていない箇所があるので、もう少し頑張ります。

<未解決箇所>
・1)で「自作webアプリの隣のタブで開きたい」
・4)宛先に任意のメールアドレスを入力
・ユーザーの標準ブラウザで開きたい




ちなみに3)をクリックできるまで悩んだことを、私のような人のために書いておきます。
・「getElementsByTagName」というのを見つけたのでidにして使えないかな?と思って「getelemntbyid」と書き直して指定したら、「公開メンバー 'getelemntbyid' は型 'HTMLDocumentClass' に見つかりませんでした。」となった。「id」はないのかと思ったが検索してみたら「GetElementById」がある。「なんで使えないんだ?」と思って大文字小文字を正しく指定したら使用できた!大文字小文字まで正確にしないとだめなのですね。

・「GetElementById」でエラーが出なくなったが「obj Is Nothing」になってしまう。あるはずなのに?と思ったら表示待ちを入れないと「ないよ」と言われてしまうのですね。以下を間に挟みました。
Do Until objIE.Busy = False
System.Threading.Thread.Sleep(1000)
Loop

引用返信 編集キー/
■89436 / inTopicNo.4)  Re[1]: webメーラーからメールを作成したい
□投稿者/ Azulean (1010回)-(2018/11/28(Wed) 21:53:17)
No89430 (くろ さん) に返信
> vs2010 vb webアプリで開発してます。

Web アプリとありますが…、IE で見るようなページを作っているという理解で合っていますか?


> Dim objIE = CreateObject(Request.Browser.Browser & ".Application")

合っているならこのコードは普通動きません。
自分のマシンがサーバーで自分しか使わないなら動くかもしれませんが…。

Web アプリにおける VB.NET のコードはサーバーで実行されます。
多くのケースではその出力結果(ページ)を見るクライアントは別のマシンですので、IE の操作はできません。

クライアントでのコード実行を目指すのであれば、VB.NET ではなく、JavaScript とかそっち方面だと思います。

引用返信 編集キー/
■89444 / inTopicNo.5)  Re[2]: webメーラーからメールを作成したい
□投稿者/ くろ (3回)-(2018/11/29(Thu) 10:36:01)
2018/11/29(Thu) 10:37:21 編集(投稿者)

No89436 (Azulean さん) に返信
> ■No89430 (くろ さん) に返信
>>vs2010 vb webアプリで開発してます。
>
> Web アプリとありますが…、IE で見るようなページを作っているという理解で合っていますか?
>
>
>>Dim objIE = CreateObject(Request.Browser.Browser & ".Application")
>
> 合っているならこのコードは普通動きません。
> 自分のマシンがサーバーで自分しか使わないなら動くかもしれませんが…。
>
> Web アプリにおける VB.NET のコードはサーバーで実行されます。
> 多くのケースではその出力結果(ページ)を見るクライアントは別のマシンですので、IE の操作はできません。
>
> クライアントでのコード実行を目指すのであれば、VB.NET ではなく、JavaScript とかそっち方面だと思います。

投稿ありがとうございます!

確かに自分の環境でしか確認していませんでした。

自分がWindowsでIEなのですが、実際に動かしたい環境はIOSでおそらくブラウザはSAFARIです。

両方で動かせるようにしたいなと思って「Request.Browser」にしてみたのですが、これではダメなのですね。

ふふ。まだまだ難関がありそうですよね。(汗

ご親切にありがとうございます。

少し形になったらまた書き込みます。
<m(__)m>

引用返信 編集キー/
■89446 / inTopicNo.6)  Re[3]: webメーラーからメールを作成したい
□投稿者/ PANG2 (250回)-(2018/11/29(Thu) 12:41:16)
2018/11/29(Thu) 12:46:19 編集(投稿者)

No89444 (くろ さん) に返信
> >>Dim objIE = CreateObject(Request.Browser.Browser & ".Application")

・プラウザがVBScriptに対応していること
・ブラウザがOLEオートメーションに対応していること
・ブラウザのセキュリティ関係を調整

が必要条件となります。
IE on Windows以外で動くとは思えません。

全く別の方法ですが、mailto:リンクが使えるかも
http://campus.seisen-u.ac.jp/aboutDefaultMUA_s/
# よく見たらイマイチでした
引用返信 編集キー/
■89449 / inTopicNo.7)  Re[4]: webメーラーからメールを作成したい
□投稿者/ くろ (4回)-(2018/11/29(Thu) 13:55:54)
No89446 (PANG2 さん) に返信
> 2018/11/29(Thu) 12:46:19 編集(投稿者)
>
> ■No89444 (くろ さん) に返信
>>>>Dim objIE = CreateObject(Request.Browser.Browser & ".Application")
>
> ・プラウザがVBScriptに対応していること
> ・ブラウザがOLEオートメーションに対応していること
> ・ブラウザのセキュリティ関係を調整
>
> が必要条件となります。
> IE on Windows以外で動くとは思えません。
>
> 全く別の方法ですが、mailto:リンクが使えるかも
> http://campus.seisen-u.ac.jp/aboutDefaultMUA_s/
> # よく見たらイマイチでした

投稿ありがとうございます!

皆さんのおかげで「3)「メール作成」というボタンを押す」までできたので、
4)は保留にして動作環境でテストしてみようと思います。

もし何かアドバイスがありましたらまたお願いいたします。


引用返信 編集キー/
■89450 / inTopicNo.8)  Re[5]: webメーラーからメールを作成したい
□投稿者/ くろ (5回)-(2018/11/29(Thu) 13:59:15)
No89449 (くろ さん) に返信
> ■No89446 (PANG2 さん) に返信
>>2018/11/29(Thu) 12:46:19 編集(投稿者)
>>
>>■No89444 (くろ さん) に返信
> >>>>Dim objIE = CreateObject(Request.Browser.Browser & ".Application")
>>
>>・プラウザがVBScriptに対応していること
>>・ブラウザがOLEオートメーションに対応していること
>>・ブラウザのセキュリティ関係を調整
>>
>>が必要条件となります。
>>IE on Windows以外で動くとは思えません。
>>
>>全く別の方法ですが、mailto:リンクが使えるかも
>>http://campus.seisen-u.ac.jp/aboutDefaultMUA_s/
>># よく見たらイマイチでした
>
> 投稿ありがとうございます!
>
> 皆さんのおかげで「3)「メール作成」というボタンを押す」までできたので、
> 4)は保留にして動作環境でテストしてみようと思います。
>
> もし何かアドバイスがありましたらまたお願いいたします。
>
>

PANG2 さんのところに「3)「メール作成」というボタンを押す」の内容を書いたのですが、
これでは分かり辛いでしょうか?

こちらにも書いておきます。
(使用の仕方が良くわかっていなくてすみません。)

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
DOM Explorer-要素の選択で、押したい箇所を選択してみました。
以下表示された「DOM Explorer」です。

<H2 class="am6 menu_compose">メール作成</H2>

??名前がわからない??と思い、今度は「DOM Explorer」の中を「click」で検索してみました。するといくつか検索された中から「これじゃない?!」という箇所が見つかりました。
以下「DOM Explorer」抜粋です。


<TABLE onclick="amtop.changeContents('smail')" id=smail class=unselected_tab cellSpacing=0 cellPadding=0 border=0><TBODY>
<TR>
<TD>
<H2 class="am6 menu_compose">メール作成</H2></TD></TR></TBODY></TABLE>



名前はわからないけどidが・・・!
そこで、次のようにしてみました。
Dim obj1 = objIE.Document.GetElementById("smail")
If not obj1 Is Nothing Then
obj1.click()
End If


クリックできました!
やったー!

ありがとうございます!教えていただいたおかげです!

まだ解決できていない箇所があるので、もう少し頑張ります。

<未解決箇所>
・1)で「自作webアプリの隣のタブで開きたい」
・4)宛先に任意のメールアドレスを入力
・ユーザーの標準ブラウザで開きたい




ちなみに3)をクリックできるまで悩んだことを、私のような人のために書いておきます。
・「getElementsByTagName」というのを見つけたのでidにして使えないかな?と思って「getelemntbyid」と書き直して指定したら、「公開メンバー 'getelemntbyid' は型 'HTMLDocumentClass' に見つかりませんでした。」となった。「id」はないのかと思ったが検索してみたら「GetElementById」がある。「なんで使えないんだ?」と思って大文字小文字を正しく指定したら使用できた!大文字小文字まで正確にしないとだめなのですね。

・「GetElementById」でエラーが出なくなったが「obj Is Nothing」になってしまう。あるはずなのに?と思ったら表示待ちを入れないと「ないよ」と言われてしまうのですね。以下を間に挟みました。
Do Until objIE.Busy = False
System.Threading.Thread.Sleep(1000)
Loop



引用返信 編集キー/
■89453 / inTopicNo.9)  Re[6]: webメーラーからメールを作成したい
□投稿者/ くろ (6回)-(2018/11/29(Thu) 15:44:12)
みなさま、アドバイスをありがとうございます。

ご指摘の通り、動作環境で試してみたらダメでした。

教えていただいた「JavaScript」で見てみようと思ったのですが、
みごとにちんぷんかんぷんです。

「JavaScriptとは」で検索からスタートです。

最初の質問からずれてしまったので、
別で質問させてもらおうと思います。

本当にどうもありがとうございました。




引用返信 編集キー/
■89454 / inTopicNo.10)  Re[7]: webメーラーからメールを作成したい
□投稿者/ くろ (7回)-(2018/11/29(Thu) 15:45:32)
No89453 (くろ さん) に返信
> みなさま、アドバイスをありがとうございます。
>
> ご指摘の通り、動作環境で試してみたらダメでした。
>
> 教えていただいた「JavaScript」で見てみようと思ったのですが、
> みごとにちんぷんかんぷんです。
>
> 「JavaScriptとは」で検索からスタートです。
>
> 最初の質問からずれてしまったので、
> 別で質問させてもらおうと思います。
>
> 本当にどうもありがとうございました。
>
>
>
>
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ