- 締切済み
sendmail 送信先を複数設定するには?
sendmailが使えるCGIを設置して分からないことが出てきました 自分は設置程度は出来ますが、書き換え等は初心者ですm(_ _)m http://www.supra.cx/joyful2chMe/index.html こちらを設置したのですが、新着投稿を複数のアドレスに送るにはどうしたらよいでしょうか PCアドレスと携帯に転送したいと思います。$mailto = '×××@yahoo.co.jp';の先に アドレス追加してみたのですが最初のアドレスにしか届きませんでした # 投稿があるとメール通知する (sendmail必須) # 0 : 通知しない # 1 : 通知するが、自分の投稿記事はメールしない。 # 2 : 通知する。自分の投稿記事も通知する。 $mailing = 2; $mailto = '×××@yahoo.co.jp'; # メールアドレス(メール通知する時) $mail_title = '新規投稿'; # 通知メールのタイトル $mail_form = 'master <×××@yahoo.co.jp>'; # 通知メールの差出人 $sendmail = '/usr/lib/sendmail'; # sendmailパス(メール通知する時) windows2000 ロリポップサーバーを使ってます。 宜しくお願いします
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- in_dow
- ベストアンサー率77% (7/9)
#あくまでも参考までに。 sendmailの仕様にも寄りますが、こんなのもありだと思います open(MAIL,"| $sendmail -t"); print MAIL "Bcc: $_\n" foreach (split(/,/, $mailto)); print MAIL "From: $mail_form\n"; #print MAIL "Errors-To: $mail_error_to"; #エラーメールの送り先 print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "$mail_body\n"; close(MAIL); #これだと、メーラー(?:デーモンとでも呼ぶべきか?)の負荷も、スクリプト自体の負荷も減ると思います。(時々、toを設定しないとメールを送信してくれない設定をしているサーバーもあるので要注意。) #詳しい制約などはsendmailのマニュアルを読んでみると新しい発見があるかもしれません。 #メールアドレスの表記方法は "abc@abc.abc"だけではなく、"abcさん <abc@abc.abc>"と言う表記もあるって事も言いたいけど、今回は割愛させていただきます^^;
- Dpop
- ベストアンサー率51% (279/544)
#1 です。 ちょっと修正です。foreach の () が抜けていました。 foreach my $wmailto split(m/,/, $mailto) { は foreach my $wmailto (split(m/,/, $mailto)) { として下さい。 foreach my $wmailto (split(m/,/, $mailto)) { open(MAIL,"| $sendmail -t"); print MAIL "To: $wmailto\n"; print MAIL "From: $email\n"; print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "--------------------------------------------------------\n"; print MAIL "$mail_body\n"; print MAIL "--------------------------------------------------------\n"; close(MAIL); } と foreach my $wmailto (split(m/,/, $mailto)) { open(MAIL,"| $sendmail -t"); print MAIL "To: $wmailto\n"; print MAIL "From: $mail_form\n"; print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "$mail_body\n"; close(MAIL); } です。
お礼
重ね重ねありがとうございます、上手くできたら報告したいと思いますm(_ _)m
- Dpop
- ベストアンサー率51% (279/544)
#1 です。 途中で切れてしまったみたいですね。 の様に半角カンマ(半角カンマが都合が割るけれど、foreach の行にある m/,/ のカンマを別の文字に変更。)していただければ、同じ内容のメールが複数のアドレスへ送信させる様になると思いますよ。 始めにも書きましたが、このスクリプトを改造して利用して良いか確認していませんので、良く確認してから使ってくださいね。 指定できるメールアドレスの数には制限はありませんが、あまり多いとサーバーから警告を受けるかも知れません(Sendmailは重い部類に入ります。)。あまりメールアドレスを追加しない方が良いと思います。 また、僕はスクリプトをダウンロードして、ソースを数カ所読んだだけでスクリプトの修正案を作りました。 多分、これで問題は無いと思いますが、動作を確認するまでは、ご自分のメールアドレス以外のメールアドレスを指定しない様にしてくださいね。
お礼
大変詳しく教えて頂きありがとうございました 作者さんのHPみたら質問には答えないと書いてあり改造は自由にということ なのでやってみます。まずは自分の携帯への転送が出来るかどうかやってみます
- Dpop
- ベストアンサー率51% (279/544)
このスクリプトは改造して使って良いのかな?確認してから使ってくださいね。 全く試していませんが。 joyful2ch.cgi の 1832行目~ open(MAIL,"| $sendmail -t"); print MAIL "To: $mailto\n"; print MAIL "From: $email\n"; print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "--------------------------------------------------------\n"; print MAIL "$mail_body\n"; print MAIL "--------------------------------------------------------\n"; close(MAIL); を foreach my $wmailto split(m/,/, $mailto) { open(MAIL,"| $sendmail -t"); print MAIL "To: $wmailto\n"; print MAIL "From: $email\n"; print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "--------------------------------------------------------\n"; print MAIL "$mail_body\n"; print MAIL "--------------------------------------------------------\n"; close(MAIL); } joyful2ch-hi.cgi の 1722行目~ open(MAIL,"| $sendmail -t"); print MAIL "To: $mailto\n"; print MAIL "From: $mail_form\n"; print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "$mail_body\n"; close(MAIL); を foreach my $wmailto split(m/,/, $mailto) { open(MAIL,"| $sendmail -t"); print MAIL "To: $wmailto\n"; print MAIL "From: $mail_form\n"; print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "$mail_body\n"; close(MAIL); } として、 $mailto = '×××@yahoo.co.jp'; を $mailto = 'foo@domain.com,bar@domain.com'; の様に半角カンマ(半角カンマが都合が割るけれど、foreach の行にある m/,/ のかん
お礼
早速ありがとうございます!作者の方にも問い合わせ中なのですが お返事頂けないのでこちらで質問させて頂きました 単純にアドレスを追加するだけじゃダメだったんですね 書き換えしてみたいと思いますm(_ _)m
お礼
おお、またまた詳しく教えて頂きありがとうございました 勉強不足な所たくさんあるので いろいろ試してみたいと思いますm(_ _)m 感謝!