androidAppからメール送信する方法

3,451 views
Skip to first unread message

夜子ママ

unread,
Apr 5, 2010, 5:00:57 AM4/5/10
to 日本Androidの会
いつもお世話になっております。
夜子ままです

Androidアプリからメールを送信する場合以下のインテントを用いて
startActivityをするサンプルはよく見かけるのですが。

Intent intent = new Intent(Intent.ACTION_SEND);

これだとFormがでちゃうので自動的にプログラムから送信しちゃいたいのですが。
これについてJavaMailを用いるとかなんとかみつけたけど、これもなんか曖昧でうまくいきません。

参考)
http://groups.google.co.jp/group/android-developers/browse_thread/thread/caac9c533a5ba722

Android携帯にはメールの設定がされているはずなのでこれを利用して、メールの送信を楽にできなのかなとおもっているのですが皆さんはどのように
されていますか?

それともこういった話題が過去ログにでてないところみるとAndroidアプリから直接メールを送信することはタブーなんでしょうか。

Keiji Ariyama

unread,
Apr 5, 2010, 5:09:50 AM4/5/10
to android-g...@googlegroups.com, 夜子ママ
有山@大阪です。

 Androidにインストールされている標準のメーラーでは、外部から確認画面を
出さずにメールを出すことは出来なかったと記憶しています。

 バックグラウンドで自動的にメールを送りたい場合は、自分で実装する必要が
あります。

/*********************************************
有限会社シーリス
代表 有山 圭二
@Address
〒530-0044
大阪市北区東天満二丁目2番5号
第2新興ビル6F
@Web http://www.c-lis.co.jp
*********************************************/

夜子ママ

unread,
Apr 5, 2010, 8:17:50 PM4/5/10
to 日本Androidの会
夜子ままです

有山さまお返事ありがとうございます、

バックグラウンドでメール送信をするには自前で実装する必要ありですか、
わかりましたありがとうございます。

On 4月5日, 午後6:09, Keiji Ariyama <keiji_ariy...@c-lis.co.jp> wrote:
> 有山@大阪です。
>
>  Androidにインストールされている標準のメーラーでは、外部から確認画面を
> 出さずにメールを出すことは出来なかったと記憶しています。
>
>  バックグラウンドで自動的にメールを送りたい場合は、自分で実装する必要が
> あります。
>
> /*********************************************
> 有限会社シーリス
> 代表 有山 圭二
> @Address
> 〒530-0044
> 大阪市北区東天満二丁目2番5号
> 第2新興ビル6F

> @Webhttp://www.c-lis.co.jp


> *********************************************/
>
> (2010/04/05 18:00), 夜子ママ wrote:
> > いつもお世話になっております。
> > 夜子ままです
>
> > Androidアプリからメールを送信する場合以下のインテントを用いて
> > startActivityをするサンプルはよく見かけるのですが。
>
> > Intent intent = new Intent(Intent.ACTION_SEND);
>
> > これだとFormがでちゃうので自動的にプログラムから送信しちゃいたいのですが。
> > これについてJavaMailを用いるとかなんとかみつけたけど、これもなんか曖昧でうまくいきません。
>
> > 参考)

> >http://groups.google.co.jp/group/android-developers/browse_thread/thr...
>
> > Android携帯にはメールの設定がされているはずなのでこれを利用して、メールの送信を楽にできなのかなとおもっているのですが皆さんはどのように
> > されていますか?
>
> > それともこういった話題が過去ログにでてないところみるとAndroidアプリから直接メールを送信することはタブーなんでしょうか。

ohisamallc

unread,
Apr 5, 2010, 11:16:06 PM4/5/10
to android-g...@googlegroups.com
何時もお世話様です。山形のおひさまです。

import java.net.socket;でsmtpプロトコルで送信を確認しました。
button押すだけです。
環境は、以下です。
 api3です。
 emelator上です。
 manifestにinternetの許可必要かと。
 認証のいらないsmtpサーバーでテストしました。
 portは25番です。
 ソースは、socket helo subject data 354 rcpt あたりでぐぐればOK
感想 
 送るには送れますが、サーバーアドレス、メールアドレス、ポート
 後、認証とか色々セット必要ですので本物のメールアプリ作る気概
 が無いと無理かも。


                     お願い ①ただで実機テストしてくれ
る方募集。当方実機なしの為。apkのみ。
                     お願い ②ただでmarketに出品してく
れる方募集。その際は、ソース提供します。

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られて
います。
このグループに投稿するには、android-g...@googlegroups.com にメールを
送信してください。
このグループから退会するには、
android-group-j...@googlegroups.com にメールを送信してくださ
い。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja
らこのグループにアクセスしてください。

夜子ママ

unread,
Apr 6, 2010, 12:03:56 AM4/6/10
to 日本Androidの会
おひさま様

こんにちは、夜子ままです。

Mailの件ですが、
http://code.google.com/p/javamail-android/downloads/list
こちらのライブラリを用いて当方でもなんとかメールを送ることができるようになりました。
ですがSMTPの設定やユーザ、パスワードの設定をアプリ側で設定しないといけないのがネックになっています。
Gmailの設定があるはずなのでそれが取得できればベストなんだけどなぁと思っていますが
セキュリティー上そういうことできるわけないだろう、、とあきらめています。

ohisamallc

unread,
Apr 6, 2010, 12:22:02 AM4/6/10
to android-g...@googlegroups.com
夜子まま様、おひさまです。

gmailはcontent providerだと思うんで操作できるんじゃないでしょうか。
調査します。

Lewske Wada

unread,
Apr 5, 2010, 6:27:55 AM4/5/10
to android-g...@googlegroups.com
夜子ママ wrote:
> それともこういった話題が過去ログにでてないところみるとAndroidアプリから直接メールを送信することはタブーなんでしょうか。
>

Socket でいいんじゃない?

Ryu

adamrocker

unread,
Apr 6, 2010, 7:47:11 AM4/6/10
to android-g...@googlegroups.com
adamrockerです。

もしくは、HTTPでサーバにPOSTして、
サーバからメールを投げるという回りくどいですが意外と実装が簡単な方法も考えられますね。

2010年4月5日19:27 Lewske Wada <r...@run.sh>:

夜子ママ

unread,
Apr 9, 2010, 4:31:18 AM4/9/10
to 日本Androidの会
夜子ままです

最近ようやくコンテンツプロバイダの振る舞いを理解してきたので再度調査をしました。

Androidに標準で提供されているMail機能があるので、ソースプログラムをみると内部で
SMTPやアカウント情報を取得していました、そこで保持しているデータをコンテンツ
プロバイダ経由取得できないか試してみましたができませんでした。

このプロバイダは外部からのアクセスを禁止しているようです。

多分、これのせい
MailのManifestより抜粋
<!-- Grant permission to system apps to access provider (see provider
below) -->
<permission
android:name="com.android.email.permission.ACCESS_PROVIDER"
android:protectionLevel="signatureOrSystem" ← これ?
android:label="@string/
permission_access_provider_label"
android:description="@string/
permission_access_provider_desc"/>
<uses-permission
android:name="com.android.email.permission.ACCESS_PROVIDER"/>

ということで自己解決してしまいましたが、他に方法がみつかったらまた報告したいとおもいます。

勘違い等あれがご指摘お願いします。

Reply all
Reply to author
Forward
0 new messages