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

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

ただいまの
回答率

87.51%

毎日決まった時間にメールを配信したい。どの言語を利用したらいいかわかりません。プログラミング初心者です。

受付中

回答 6

投稿 編集

  • 評価
  • クリップ 5
  • VIEW 1,664

score 0

★プログラミング初心者ですが、やりたい事があります★

■やりたいこと
毎日決まった時間に、
音声ファイルのリンクを付けたメールを自動的に送りたいです。

毎日ファイルを探して、
音声再生するのが面倒なので、
プログラミングで解決したいという理由でご質問させていただきます。

■質問内容

―――
質問1
―――

調査の方向性を確認したいです。

この一点です。

後進のためにと思っていただける先輩方からヒントがほしいです。
具体的なことはなくても構いません。

下記の通り調べてみましたが、
どの言語を使ったらいいかは見当つかないレベルの知識です。

このような質問がteratail上で不適切なら
お詫びの上、質問をクローズさせていただきます。

■具体的なやりたいことの内容
1:DropboxやGoogle Drive等のクラウド上にある音声ファイル(mp3)を
2:メールにリンクを貼る
3:決まった時間にメールを自動配信(配信先は私ひとりです)

■開発環境
MacOS(最新)、WindowsOS(最新)

■調べてみたこと
Google検索で調べてみたところ、
Pythonを使う、エクセル関数を使う等らしきサイトにあたってみましたが、
バッチリと内容が合致しないことと、
どれも具体的過ぎて、私の理解が追いつかないことと、
何の言語を使えばいいかの当りもつけられなくて困ってしまいました(T_T)

見当違いで、勉強と検索を続けてしまうのが怖いって思っています。

■ほかの方にも役に立つ

きっと同じようなことをやりたい方がいると思います。
理由は習慣化のハードルを下げることができるツール(やプログラム)になると考えるからです。

解決できたあかつきには、開発の手順をここやブログなどで紹介したいな~と思っています。

■ここまで読んで頂いたことを感謝します。

地道に勉強することは自覚していますので、
この点のアドバイスは不要です。

ただ、入門書を読んである程度の知識を得てから、
出直してこいという世界なら別の方法を考えます。

例えばなのですが、
相談者が六法全書を読んでいなくても、
専門家は法律の解釈の質問を受けても答えられるのですが、
プログラミングの専門家はそうではないのかな~と
最初と2番目の回答者様の回答をみて少し残念です。

回答を頂いたことは感謝していますが、
専門家とは思えない回答だったので、
がっかりしました。

プログラミングはプロとしても、
教えることが出来ない方々なんだろうと思います。

しかし、同じ論理思考を使う専門家だと思うので、
そんなことはないのではないかと期待しています。

説明不足であれば、質問内容を修正します。

上記質問内容を修正すると明言していますが、
これに沿うことなく質問者を落とし込むようなコメントや評価があることが残念です。

どうかお知恵をお貸しいただきたいです。
よろしくお願いします。

最後までお読みくださってありがとうございました。

――――――
2020.6.14時点での方向性
――――――
■具体的なやりたいことの内容の変更点
1:DropboxやGoogle Drive等のクラウド上にある音声ファイル(mp3)について

(検討経緯)
→ クラウド上ではセキュリティの対策として
ファイルを指定するURLがランダムに作成される。
→ 上記をプログラムに読ませるのは骨が折れる。
→ よって、ファイル名を指定し、URLを取得しやすくするためレンタルサーバーにファイルを置く。
※もしくはクラウド上でもファイル名が自分自身で設定できるサービスを探す(なさそう)。

(変更点要点)レンタルサーバーにファイルを置く。

■具体的なやりたいことの内容の方向性の進捗
2:メールにリンクを貼る
3:決まった時間にメールを自動配信(配信先は私ひとりです)

→ メール配信はGmailを利用する。
→ Python3を利用して、Python標準ライブラリのsmtplibを活用する。
→ アカウント乗っ取り対策のため、メール配信専用のアカウントを作成する。
→ 定期実行はcronを利用する。

以上です。引き続き進捗がありましたら、こちらに加筆していきます。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Zuishin

    2020/06/15 20:03

    ではこれを反省し、次からはサイトの趣旨にかなう質問をするようにし、犯罪行為を控えるよう強く要望します。

    キャンセル

  • kyoya0819

    2020/06/15 20:52

    「告発」の意味違いますよ。

    キャンセル

  • 退会済みユーザー

    2020/08/29 02:49

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 6

+4

毎日決まった時間にメールを配信したい。どの言語を利用したらいいかわかりません。プログラミング初心者です

定期実行できる仕組みとメール送信、あと質問本文から、クラウドストレージへの API アクセスができれば良いので、言語はおおよそ何でも良いです。

どちらかと言うと
・正しくメールを送ること
・定期実行システムとの親和性
あたりが制約になるので、インフラ側の制限が強いです。

私なら、Google Apps Script で実現します。

相談者が六法全書を読んでいなくても、
専門家は法律の解釈の質問を受けても答えられるのですが、
プログラミングの専門家はそうではないのかな~と
最初と2番目の回答者様の回答をみて少し残念です。

これ、コピペで動くコードがほしいって言ってます?
もしそうなら、こちらのサイトの主旨に反しているので、クラウドソーシングででも相談すると良いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/06/13 13:15

    te2ji様

    コメント欄が荒れているところ、
    回答しにくかったかもと思いました。

    その様な中ご回答くださりありがとうございます。
    teratailのサーバーが不調なのか、サイトにアクセスが出来ず、
    お礼と回答が遅れたことお詫びします。

    ●使用言語について何でもよいとこのこと、わかりました。

    ●「インフラ側の制限が強い」点、了解です。
    プログラミングは元より、APIについて調査する点は視点になかったので、大変助かりました。調べてみます。

    ●コピペで動くコードがほしいとは言っていません。
    書き方が分かりづらかったらすみません。
    自分で調べて、勉強し、プログラムを作成したいと考えています。

    プロに依頼する、DIYレベルかの判断が出来るように
    プログラムを勉強したいと思い着手しました。

    このサイトは「くれくれ」ではなくて、
    誰かの悩みは皆の悩み、、、
    という協力しあって作るコミュニティみたいなものと思っています。

    解決できたあかつきには、
    その時点での自分自身の回答もシェアできればいいなと考えています。

    ご回答くださり、重ねてお礼申し上げます。

    キャンセル

  • 2020/06/15 08:55

    > その時点での自分自身の回答もシェアできればいいなと考えています。

    「 2020.6.14時点での方向性」のような、回答を無視する方向性を書かれても不快です。薄っぺらいコメント、やめてみては?

    キャンセル

  • 2020/06/15 17:05

    気分を害してしまったこと、申し訳ありません。

    このサイトでは回答に対してスピードを求めらるように感じたので、
    可能な限り反応した方が良いのかと思っていました。

    「回答を無視する」つもりはありません。
    せっかくアドバイスを頂いたのに、
    そう思わせてしまったことが申し訳なく思います。
    アドバイスをくださったことは大変感謝しています。

    時間はかかりますが、
    教えてくださったことに対して得たものをシェアしたいと考えてます。

    キャンセル

+4

元データはGoogle Drive上、Gmailを使ってメールを送信というのであれば、Google Apps Script(GAS)一択です。Google上のサービスに対してのアクセスなので、わざわざ別のプラットフォームにする必要もありません。

言語はECMAScriptになります。現在の所、Google Apps ScriptのランタイムはRhino(ES5)かV8(ES2015+)の二択です。他言語でもAPIは用意されており、Google Cloud Platform(GCP)のGoogle App Engineを初めとしたクラウドリソース上で動作させるというのもできないことはないですが、手間がかかる手段を用いる必要はありません。

■具体的なやりたいことの内容の変更点
1:DropboxやGoogle Drive等のクラウド上にある音声ファイル(mp3)について

(検討経緯)
→ クラウド上ではセキュリティの対策として
ファイルを指定するURLがランダムに作成される。
→ 上記をプログラムに読ませるのは骨が折れる。
→ よって、ファイル名を指定し、URLを取得しやすくするためレンタルサーバーにファイルを置く。
※もしくはクラウド上でもファイル名が自分自身で設定できるサービスを探す(なさそう)。

(変更点要点)レンタルサーバーにファイルを置く。

GASからGoogle Driveへのアクセスは、GASに対してGoogleアカウントの権限を与えることで行えます。その承認はOAuthを用いたセキュアなものであり、GAS内にユーザー名やパスワードを生で書き込むというものではありません。

GASにはGoogle Driveに対するAPIが用意されており、ドライブ内の検索、選択、共有設定等もGAS側から行えます。通常のWeb上できることのとほぼ全てができると考えて構いません。ほとんどはメソッド呼び出しだけであり、細かい実装も不要です。

当たり前ですが、レンタルサーバーを借りる必要性はありません。

■具体的なやりたいことの内容の方向性の進捗
2:メールにリンクを貼る
3:決まった時間にメールを自動配信(配信先は私ひとりです)

→ メール配信はGmailを利用する。
→ Python3を利用して、Python標準ライブラリのsmtplibを活用する。
→ アカウント乗っ取り対策のため、メール配信専用のアカウントを作成する。
→ 定期実行はcronを利用する。

GASにはGmailでのメール送信のAPIも用意されています。そればかりか、Gmailを読むことすらできます。

GASの実行トリガーはアクセスしたときだけではなく、定期的な実行もできます。別途サーバーを用意する必要はありません。

通常のGmailアカウントでのGAS利用は無料ですが、コンピュータ資源の利用に一定の制限があります。ただ、定時に一人に対してメールを送る程度であれば、無料枠を使い切ることはないでしょう。他の人にもサービスを提供するといった場合になって、GCPの有料版を使っての本格的なものに移行すればいいと思います。(実際の所、GCPの仕組みを使っているに過ぎないのですが)

なお、レンタルサーバーでもホスティングサーバー形式の物はcronを設定できる少ないです。cronを使いたければVPS形式のレンタルサーバーを選ぶ必要があると思われますが、普通は有料であり、やりたいことに対して、費用がかかりすぎと思われます。GCP、AWS、Azureの各サービスを使うか、HerokuのようなPaaSを使った方が安上がりになると思われます。


調査の方向性を確認したいです。

よって、結論としては調査の方向性は間違っています。Pythonもレンタルサーバーも全くいりません。GASについてと、そこでスクリプトを実装するためのECMAScriptを学んでください。無料枠を突き抜けそうなら、GCP、AWS、Azure等のクラウドサービス上で動作させるを検討すると良いでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/06/14 17:50

    raccy様

    アドバイスありがとうございます!

    丁寧に質問内容を読んでくださった事、
    丁寧で分かりやすくアドバイスを書いてくださった事、
    私の初心者レベルを汲んでくださった事が伝わる内容でした。
    すべてに感謝申し上げます。

    方向性が間違っているとのご指摘、
    ありがとうございました。

    また、使用する言語のご教示まで教えてくださって感謝しています。

    無料で済ませることもできることや、
    個人利用の範疇が超えたら次はこのようなサービスがあるとの見通しまで考えてくださって、
    お手数おかけしたことすみませんでした。
    重ねてお礼申し上げます。

    これから教えてくださった内容の
    確認作業します。

    ベストアンサー2つ付けられたいいのになと
    思って困りました。

    また、フィードバックさせてください。

    取り急ぎ、アドバイスを頂いたことにお礼申し上げます。

    キャンセル

+3

1:DropboxやGoogle Drive等のクラウド上にある音声ファイル(mp3)を
2:メールにリンクを貼る
3:決まった時間にメールを自動配信(配信先は私ひとりです) 

  1. Dropbox Google Drive の API が存在しているかを調査します。

どうやらあるようです。
https://www.google.com/search?client=firefox-b-d&q=dropbox+api

こういう記事もあるようなので、ファイル情報を取得して、なんとかすればいけそうです。
https://qiita.com/tksnino/items/c39b509494cc7f05954a

次にGoogleDriveを調査
https://www.google.com/search?safe=off&client=firefox-b-d&sxsrf=ALeKk03jTNbshwm43rhM5oeI8JY9m_m-lQ%3A1592111449610&ei=WbHlXuDZJJSKr7wP9dGWsAM&q=GoogleDrive+API&oq=GoogleDrive+API&gs_lcp=CgZwc3ktYWIQA1AAWABgfmgAcAB4AIABAIgBAJIBAJgBAKoBB2d3cy13aXo&sclient=psy-ab&ved=0ahUKEwig6pWrxYDqAhUUxYsBHfWoBTYQ4dUDCAs&uact=5

APIもあるようだし、ファイル情報の検索もできるようです。

まずは要件の一つはクリアしそうです。

メールを送信するのは、ごく当たり前の初歩的なものなので、どんな言語だろうと、ググればすぐに見つかる。

定期的に実行は Linux 系の物ならCron使えばいいし、Windows ならタスクスケジューラー使えばいけそう。

とエンジニアはこのように一つ一つ調査していきます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/06/14 14:35

    phper.k様

    アドバイスありがとうございます。

    また、ご丁寧に参考URLのご教示もありがとうございます。
    早速ざっとですが、読ませていただきました。

    やりたいことが出来そうです。
    今からよく読み込んで、作業を進めていきたいと思います。
    ひとりで調査していたら、巡り会えなかったと思います。
    助かりました。

    教えてくださった事を読み込んだあと、
    勉強してみたこことや感想を添えてベストアンサーの評価を入れさせていただきたく思います。

    キャンセル

  • 2020/06/14 15:10 編集

    どうぞ頑張ってみてください。

    > 専門家とは思えない回答だったので、がっかりしました。

    こう書くくらいの質問者様なので、フィードバックには大いに期待しています。
    どうぞ有意義で、他の方にも大いに参考になるレベルでのフィードバックをお願いしますね。

    キャンセル

  • 2020/06/14 17:36

    コメントありがとうございます。

    はい!ヒントをたくさん下さいましたので、
    フィードバックは必ずします。

    アドバイスをいただけて本当に嬉しかったです。

    同じような悩みを持つ方にヒントになれるよう頑張ってみます。

    キャンセル

  • 2020/06/15 09:00

    > メールを送信するのは、ごく当たり前の初歩的なものなので、どんな言語だろうと、ググればすぐに見つかる。

    メール送信は、そんなに初歩なものではないかと。。。言語云々より、どちらかと言うと、メールシステムそのものが複雑怪奇です。

    キャンセル

+1

>毎日決まった時間に、音声ファイルのリンクを付けたメールを自動的に送りたい
>毎日ファイルを探して、音声再生するのが面倒

この目的ならばプログラミング不要では。私ならIFTTTを使います。

hawksnowlog: IFTTT で指定された曜日の時間にメールを送信する方法

この記事ではGmailを使っていますが、スマホならNotificationsの方がいいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

その段階では言語は問題でなく、どのように実現するかを考えるのが先だと思いますよ。

  • 作ったツールを「どこか」で指定した時刻に起動する。
  • そのツールがあなたのアカウントでdropboxなりgoogle driveなりにアクセスする。
  • 指定された場所にあるmp3ファイルをリストして、ランダムに1つ選択する。
  • 選択したファイルのリンクを取得する。
  • 取得したファイルのリンクをメールで送信する。

とまあ、こんな手順になると思いますが、それぞれどのように個別に調べてまとめあげれば、望みのツールができると思います。

「どこか」の装置でpythonが使えるのであれば、これらのことはpythonで実現可能です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/06/09 20:53

    早速のご回答ありがとうございます。
    調べてみます!

    キャンセル

0

実行環境とPythonとSMTPを用意しAPIを活用すると作れそうです。Pythonだから作れないということはないので地道に勉強してください。
https://qiita.com/tksnino/items/ee624221d3da00c89005

補足

teratailのヘルプよりマルチポストは明記すべきと考えます。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11226530641?__ysp=UHl0aG9uIERyb3Bib3g%3D

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/06/09 21:51

    ありがとうございます。教えてくださったURLを早速見てみます。

    キャンセル

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

  • ただいまの回答率 87.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • Pythonに関する質問
  • 毎日決まった時間にメールを配信したい。どの言語を利用したらいいかわかりません。プログラミング初心者です。