• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:将来の日時を設定して、メールを送信)

将来の日時を設定して、メールを送信

このQ&Aのポイント
  • PHP5とMysql5を使用して、将来の日時を設定してメールを送信する方法について教えてください。
  • 現在は複数のメールアドレスにそれぞれにメールを出していますが、送信時間を設定できるように変更したいです。
  • 送信予定日時、タイトル、本文、送信先メールアドレスをmysqlに保存する方法と、cronとPHPを使用して送信する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>一つのレコードに沢山のメールアドレス なるほど、そういうことですね。 mail関数は複数のメアドがカンマでつながっていれば一度に おくれたような記憶が・・・ ただしtoで送るのにメアドが羅列されているとユーザーとしては 個人情報的に嫌悪感を覚えるでしょうから、やはり1通1通 アドレスを書き込んで送る方がよいでしょうね カンマで区切られているならsplitなどで配列に落として、 foreachでまわせば1通ごとに分解できそうな気がします。 またそもそもがmysql側で正規化してデータを管理すれば 普通はメアドの数だけ1件1データで得られると思いますけど

kiyomidesuyo
質問者

お礼

>またそもそもがmysql側で正規化してデータを管理すれば >普通はメアドの数だけ1件1データで得られると思いますけど ココは理解できなかったのですが。。。 この作業が終わったら、勉強してみます。 アドバイスの通り、[split] で分解して配列に入れて うまく行くようになりました。 後は、web からアクセスできない所へ置いて cron で動かしてみます。 いつも色々とトライアンドエラーでやってみるのですが、 あまりにうまく行かないと、全く不可能なことをやろうとしているのではないかと思い。 心が折れそうに・・・ そんな時に、こちらにご相談させていただいています。。。 いつもアドバイスありがとうございましたm(__)m

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

cronを理解できている前提で2つやり方がありそうです。 一つはPHPのCLIモードでPHPのスクリプトをダイレクトに実行すること。 もう一つは、アクセスするとメールを送るようなページをPHPで組んで 公開しておきcronでwgetなどでそのページにアクセスすること。 前者は統合してやる分オーバーヘッドがすくない利点がありますが CLIの場合書式が通常と異なったり、実行ユーザーの設定に 意識しなくてはいけないなどなにげにめんどう。 後者はhttpベースでやる分、無駄が多いですが、タイマーと メール送信サーバーが異なる分、メンテナンス性がたかまります。

kiyomidesuyo
質問者

補足

いつも的確なアドバイスありがとうございます。 **PLCモードと言うものは知りませんでした。 >もう一つは、アクセスするとメールを送るようなページをPHPで組んで >公開しておきcronでwgetなどでそのページにアクセスすること。 この方法でやろうとしています。 今、時間、本文、あと メールアドレス(100個程)をそれぞれのフィールに入れて、 Mysql に保存しています。 今までは、一つのレコードに一つのメールアドレスしかないので [while]  でループして送信できていましたが、 一つのレコードに沢山のメールアドレスがあるのでどうしたらいいか悩んでいます。 メールアドレスの分だけレコードを作らないと出来ないでしょうか? $address = split(",", "$rows['address']"); これで分けたらいいのかな? とは思うのですが それから先が全く判りません。 よろしければ、その件を教えていただけませんか? 宜しくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A