[Pepper] Pepperアプリケーション開発 ~画像をメールに添付してみよう~

前回は、UnityのEditorを拡張する方法についてご紹介しました。

今回は、Pepperを用いて、以前ご紹介した、以下の記事の内容を組み合わせてみます。
[Pepper] Pepperアプリケーション開発 ~メールを送ってみよう!~
[Pepper] Pepperアプリケーション開発 ~画像をダウンロードしてみよう~

■今回実現するアプリケーション
1)検索する単語をPepperに伝えます
2)Yahooの検索エンジンを使って、1)の単語で画像検索を試みます
3)ヒットした画像を3枚、Pepperの端末内に保存します
4)その保存した3枚の画像を、メールに添付して自分宛に送信します

■プログラム
画像ファイルのダウンロードから保存までの部分と、
その後メールを送るという事で、それぞれのプロジェクトを組み合わせ、以下の様な構成としました。



図1 今回作成したプロジェクト

まず、画像ファイルをダウンロードするプログラムですが、以下のように、今回は画像を3つ保存するように作り替えています。


import sys, urllib
import os.path

class MyClass(GeneratedClass):

 …中略…

def onInput_inputVoice(self, inputData):
#画像をダウンロード
inputURLData = “http://image.search.yahoo.co.jp/search?ei=UTF-8&fr=top_ga1_sa&p=” + inputData
receiveData = str(urllib.urlopen(inputURLData).read())
receiveDataSplit1 = receiveData.split(“= 0 and sPort <= 65535 ) except: bValidPort = False if( not bValidPort ): raise Exception( str(sPort) + " is not a valid port number to use to send e-mail. It must be an integer between 0 and 65535. Please check that the port parameter of the box is correct." ) for address in aTo: try: mail( sEmailUser, address, sSubject, sText, sAttachedFilePath, sPwd, sSmtp, sPort) except smtplib.SMTPAuthenticationError as e: raise(Exception("Authentication error, server answered : [%s] %s" % (e.smtp_code, e.smtp_error))) self.onSent() # activate output of the box [/python] 画像保存が終わった後、onInput_inputFileName が実行されます。 引数として、添付ファイルの保存場所が渡されるため、それを mail 関数に渡します。 mail 関数では、添付ファイルの保存場所をカンマで分割し、1つ1つmsgに設定して行きます。 ※宛先等、他のデータの設定については、この部品作成時のまま、変更していません そのmsgを利用して、mailServer.sendmail でメールを送信します。 メール送信には、SMTP+STARTTLSの方法を利用しています。 以下、メールを送信する際の流れを簡単ではございますが、説明いたします。 1)SMTP接続する  mailServer = smtplib.SMTP(smtp, port) 2)接続先に対して、これから拡張機能を使うと知らせる  mailServer.ehlo() 3)以降の通信をTLS暗号化することを伝え、セキュアチャネルを開く(拡張機能)  mailServer.starttls() 4)セキュアチャネルに対して、最初にehloコマンドを送信する  mailServer.ehlo() 5)ログイン  mailServer.login(email_user, email_pwd) 6)メールを送る  mailServer.sendmail(email_user, to, msg.as_string()) ■実行 プログラムを実行して、Pepperに「ラーメン」と伝えます。 すると、私のメールアドレスに対して、ラーメンの画像が3つ送信されました。



図2 プログラムを実行



図3 送信されたメールの内容

■まとめ
以上で、Pepperで画像をダウンロード後に、メールに添付する方法は終了です。
最後までご覧頂き、ありがとうございました。


弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。
ご興味ある方は、お気軽にお問い合わせ下さい。


3 comments for “[Pepper] Pepperアプリケーション開発 ~画像をメールに添付してみよう~

  1. オオシモ フミヤ
    2015年10月14日 at 8:46 PM

    こんばんは。pepperが撮った写真をメール送信する方法はどうやったらいいのでしょう。教えて頂きたいです。よろしくお願いいたします。

  2. オオシモ
    2015年10月22日 at 3:34 PM

    pepperで画像を撮影してPCに送信したいのですが、うまくいきません。二つのメールアドレスはPCのアドレスではないといけないのですか?また、二つのPCとも、pepperが繋がっているWifiに繋げる必要はあるのでしょうか。教えて頂ければ幸いです。

    • arit.dev.wp.staff
      2015年10月22日 at 9:31 PM

      pepperにて、画像添付付きメールを送信できないというお問い合わせを複数頂いておりますが、以下の点ご確認お願いします。

      1)メール自体は送信できますか?
      pepper には、「Send E-mail」という部品がありますので、こちらを利用することでメールは送信できます。
      もし、画像添付の有無にかかわらず、メールが送信できないということでしたら、
      ・設定値が正しいかどうか、pepper のリファレンスをご確認ください
      ・pepper から、メールサーバまで通信が到達できる環境下にあるか、ご確認ください

      2)メールは送信できるが、画像添付ができない
      メールを送信でき、かつ画像添付ができないということでしたら、画像の保存先が正しいかどうか、ご確認ください

      以下、補足です。

      > 二つのメールアドレスはPCのアドレスではないといけないのですか?
      PCで受信しているアドレスでも、携帯で受信しているアドレスでも問題はないです。
      そのメールサーバに、pepper から送信できれば良いです。

      >二つのPCとも、pepperが繋がっているWifiに繋げる必要はあるのでしょうか。
      必要ありません。pepper、PCはそれぞれで、メールサーバと通信を行いますので、
      ・pepper とメールサーバが通信可能な環境下にあること
      ・メールサーバとPCが通信可能な環境下にあること
      この条件を満たしていれば、pepperとPCが同じ環境下にある必要はないです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*