質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

1回答

2945閲覧

RaspberryPiからメールが送れない

na-pero

総合スコア10

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2016/01/09 07:44

編集2016/01/09 07:54

クリックしていただきありがとうございます。
卒業研究でRspberrypiを利用した監視カメラ作成を行っている者です。
監視カメラを作る!
上記をみながら作成しているのですが、メール送信のスクリプトを書くというところ以降からうまく出来ません。

1点目
イメージ説明
まずこのsendmail.shというファイルが私のraspberrypiに存在していないため、どうすればいいのかわからない。

2点目
イメージ説明
このsendmail.rbというファイルも存在していないため、どうすればいいのかわからない。

ちなみに二段階認証などの設定は出来ています。
sendmail.shとsendmail.rbをメモ帳にうちこんで/home/pi/にいれることもしましたが、反応しません。
motionの設定も出来ていると思うのでやはりここのコードがうまくできていないのかと考えています。
あと、画像も一緒に添付するように設定もしたいのです。

メールが送れない!とタイトルにはしましたが、ssmtpとmuttを使ったメール送信は出来ています。sentmailを使うと出来ません…。

あまり知識がないまま進めてしまい、このままだと作品も完成できず卒業も怪しくなってきました・・・。
どなたか助けてください><よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pi-chan

2016/01/09 08:38

まず、Raspberry PiにRubyをどのようにインストールしましたか? それと「ls -l /home/pi/sendmail.sh」の実行結果も教えて下さい。
na-pero

2016/01/09 11:57

見ていただきありがとうございます。遅くなってしまい申し訳ありません。 rubyですが、 http://hyottokoaloha.hatenablog.com/entry/2015/04/25/100605 こちらのサイトを見ながらインストールをしました。 ちなみに今確認したところ2.2.3の最新版のrubyが入っています。 ls -l /home/pi/sendmail.sh」の実行結果ですが -rw-r--r-- 1 pi pi 25 1月 9 20:51 /home/pi/sendmail.sh と表示されました。 アドバイスのほう、よろしくお願い致します。
guest

回答1

0

とりあえず、下記のようなコマンドを実行してみてください。

Bash

1$ chmod +x /home/pi/sendmail.sh 2$ ls -l /home/pi/sendmail.sh 3-rwxr-xr-x 1 pi pi 25 19 20:51 /home/pi/sendmail.sh 4$

そうすると、sendmail.sh というシェルスクリプトに実行権が付与され、実行できるようになると思います。

今の場合、下記の順序でメール送信のプログラムが実行されますが、
0. motion
0. /home/pi/sendmail.sh
0. ruby /home/pi/sendmail.rb

③ は ruby 〜 というようにrubyコマンドの引数としてプログラムを実行しているので実行権がついていなくても問題ないのです。

しかし、on_event_start /home/pi/sendmail.sh の「on_event_start」はコマンドではなく、motionに対して、イベントを検知した時に実行すべきコマンドのパスを設定しているだけなので、motionから呼び出される側のシェルスクリプトには実行権を付与しておく必要があります。

chmodコマンドの意味などについては、下記をご参照ください。

【 chmod 】 ファイルやディレクトリのアクセス権を変更する


《 追加説明:2016/01/10 14:20 》

メモ帳で作成したとすると、行末コード(EOL、改行コードとも呼ばれる)が[CRLF]になってしまっているかもしれませんね。

もしFTPでRaspberry Piへ転送するのであれば、アスキーモードで転送して、EOLが[LF]になるようにしなければなりません。

詳細は下記をご参考になさってください。

  アスキーとバイナリーの違いについて
LinuxでWindowsで作成された改行コード「CRLF」のファイルを開くとどうなるのでしょうか?

それと、不要かもしれませんが先頭行に、以下のような「シバン」を追記してみてください。

Bash

1#!/bin/sh ← これがシバンです 2/home/pi/sendmail.sh 3``` 4 5シバンの意味については下記をご参照ください。 6 7  [Shebangという謎な事実上業界標準について](http://cpplover.blogspot.jp/2013/08/shebang.html) 8 9最後に、コンソールから直にスクリプトを実行してみてください。下記のようにスクリプト名を入力するだけです。 10 11```Bash 12$ /home/pi/sendmail.sh 13``` 14 15そうすると、もしエラーがあれば画面上に表示されるので、問題に気づきやすくなります。 16頑張ってください!

投稿2016/01/09 13:40

編集2016/01/10 05:19
pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

na-pero

2016/01/10 04:14

pi-chan様 わかりやすい説明ありがとうございます!大変勉強になります。 お教えいただいたコマンドを実行してみたのですが、変わらず反応せず・・・。 質問なのですが、メモ帳でsendmeil.shを作って、中身はruby home/pi/sendmail.rb と打ち込むだけでよいのでしょうか?
pi-chan

2016/01/10 05:06

コメント欄だと記載しにくいので、回答欄に追記します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問