2.1RC:sendmailが機能してない?
投稿者: MisterH | 投稿日時: 2007/2/27 21:40 | 閲覧: 33321回
ユーザーモジュールのメールジョブ管理から登録ユーザーにsendmailでメールを送信しようとしたのですが、配信されていないので報告です。
ちなみに、PMには配信されてます。
ただ、ちょっと自信がないんで、一応やり方が間違ってないかどうか確認をお願いします。
互換モジュール→XOOPS コンフィグ→メール設定で、メール送信方法をsendmailにしてパスを設定する
(/usr/sbin/sendmail←ちゃんと確認しました。http://www.xrea.com/?action=specの中ほどにあります。)
ユーザーモジュール→メールジョブ管理→新規作成からユーザー検索→メールの本文やその他を設定・入力する→メールジョブ一覧の送信ボタン→送信
で合ってますか?
後、一応送信済み扱いになってるメールの閲覧ボタンを押すと、本文が表示されない他、レイアウトが崩れます。
OS:Linux
Apache:1.3.37
PHP:4.4.4
MySQL:4.0.26
ちなみに、PMには配信されてます。
ただ、ちょっと自信がないんで、一応やり方が間違ってないかどうか確認をお願いします。
互換モジュール→XOOPS コンフィグ→メール設定で、メール送信方法をsendmailにしてパスを設定する
(/usr/sbin/sendmail←ちゃんと確認しました。http://www.xrea.com/?action=specの中ほどにあります。)
ユーザーモジュール→メールジョブ管理→新規作成からユーザー検索→メールの本文やその他を設定・入力する→メールジョブ一覧の送信ボタン→送信
で合ってますか?
後、一応送信済み扱いになってるメールの閲覧ボタンを押すと、本文が表示されない他、レイアウトが崩れます。
OS:Linux
Apache:1.3.37
PHP:4.4.4
MySQL:4.0.26
コメント(23)
新しいものから |
古いものから |
ネスト表示 |

Re: 2.1RC:sendmailが機能してない?
投稿者: minahito | 投稿日時: 2007/2/28 14:15
がちょーん。。
とりあえずバグトラッカーに載せておきます。
(ちょっと先に手順を確認)
引用:
合ってます。あとは管理者のメールアドレスの設定ですね。ここでけられてる可能性もなきにしもあらず...
といってもレイアウト崩れなど含めて相当アヤシイ(バグの可能性大)ですが...
----
これいまちょっとさっくりとテストできる環境にないな…
うわさによると XAMPP にメールサーバーがあってローカルでも試せるという話ですが...それも含めて調べてみます。
# 皆さんもテストお願いします。
(ちょっと先に手順を確認)
引用:
ただ、ちょっと自信がないんで、一応やり方が間違ってないかどうか確認をお願いします。
互換モジュール→XOOPS コンフィグ→メール設定で、メール送信方法をsendmailにしてパスを設定する
(/usr/sbin/sendmail←ちゃんと確認しました。http://www.xrea.com/?action=specの中ほどにあります。)
ユーザーモジュール→メールジョブ管理→新規作成からユーザー検索→メールの本文やその他を設定・入力する→メールジョブ一覧の送信ボタン→送信
で合ってますか?
合ってます。あとは管理者のメールアドレスの設定ですね。ここでけられてる可能性もなきにしもあらず...
といってもレイアウト崩れなど含めて相当アヤシイ(バグの可能性大)ですが...
----
これいまちょっとさっくりとテストできる環境にないな…
うわさによると XAMPP にメールサーバーがあってローカルでも試せるという話ですが...それも含めて調べてみます。
# 皆さんもテストお願いします。
Re: 2.1RC:sendmailが機能してない?
投稿者: chatnoir | 投稿日時: 2007/2/28 15:42
同じXREAでテストしてみた。
メール配信されないみたいだなー。
レイアウト崩れは、ヘッダとフッタだけあってぺっちゃんこ。
メールジョブ管理操作欄に閲覧アイコン押すと、まだ送信完了してないメールは正常にデータを取得できるのだけど、送信完了したメールは既にデータがuser_mailjob_linkから削除されてるからからっぽになっちゃう。
昨日メッセンジャーでとむさんとはちょっとお話したけどまだちゃんと追いきれないのでもうちょっと追いかけてからまた投げます。(たぶん
#完了してるかどうかでどのテーブルからデータを引っ張るかとかわけないといけないのかなぁー。
#完了したメールを閲覧するときはaction=MailjobSendの送信ボタンとかがない状態のページがあればいいのかなぁ。
メール配信されないみたいだなー。
レイアウト崩れは、ヘッダとフッタだけあってぺっちゃんこ。
メールジョブ管理操作欄に閲覧アイコン押すと、まだ送信完了してないメールは正常にデータを取得できるのだけど、送信完了したメールは既にデータがuser_mailjob_linkから削除されてるからからっぽになっちゃう。
昨日メッセンジャーでとむさんとはちょっとお話したけどまだちゃんと追いきれないのでもうちょっと追いかけてからまた投げます。(たぶん
#完了してるかどうかでどのテーブルからデータを引っ張るかとかわけないといけないのかなぁー。
#完了したメールを閲覧するときはaction=MailjobSendの送信ボタンとかがない状態のページがあればいいのかなぁ。
Re: 2.1RC:sendmailが機能してない?
投稿者: minahito | 投稿日時: 2007/2/28 15:54
引用:
あ、そういうことか!
あの閲覧ボタンはMailjob_linkListアクションへのリンクだから、送信後のメールジョブのコントロールからは取り除いたほうがいいと思います。
リストのないメールジョブの Send が開けるのも変ですね。あれを View との共有にするか、 View を増やしてしまうか...
chatnoirさんは書きました:
メールジョブ管理操作欄に閲覧アイコン押すと、まだ送信完了してないメールは正常にデータを取得できるのだけど、送信完了したメールは既にデータがuser_mailjob_linkから削除されてるからからっぽになっちゃう。
(snip)
#完了してるかどうかでどのテーブルからデータを引っ張るかとかわけないといけないのかなぁー。
#完了したメールを閲覧するときはaction=MailjobSendの送信ボタンとかがない状態のページがあればいいのかなぁ。
あ、そういうことか!
あの閲覧ボタンはMailjob_linkListアクションへのリンクだから、送信後のメールジョブのコントロールからは取り除いたほうがいいと思います。
リストのないメールジョブの Send が開けるのも変ですね。あれを View との共有にするか、 View を増やしてしまうか...
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
投稿者: Marijuana | 投稿日時: 2007/2/28 18:21
引用:
余計なボタンが出るだけなんでテンプレ修正じゃダメ?
ついでにバグ
レイアウト崩れ
余計なボタンが出るだけなんでテンプレ修正じゃダメ?
diff -u -r1.1.2.4 mailjob_link_list.html
--- mailjob_link_list.html 2 Dec 2006 15:50:22 -0000 1.1.2.4
+++ mailjob_link_list.html 28 Feb 2007 09:08:45 -0000
@@ -33,6 +33,7 @@
<a href="<{$pageNavi->renderUrlForSort()}>&sort=<{$smarty.const.MAILJOB_LINK_SORT_KEY_MESSAGE}>"><img src="<{"icons/up.gif"|theme}>" alt="<{$smarty.const._ASCENDING}>" title="<{$smarty.const._ASCENDING}>" /></a>
<a href="<{$pageNavi->renderUrlForSort()}>&sort=-<{$smarty.const.MAILJOB_LINK_SORT_KEY_MESSAGE}>"><img src="<{"icons/down.gif"|theme}>" alt="<{$smarty.const._DESCENDING}>" title="<{$smarty.const._DESCENDING}>" /></a></th>
</tr>
+ <{if $objects}>
<{foreach item=obj from=$objects}>
<tr class="<{cycle values='odd,even'}>">
<td class="user_list_control"><{xoops_input type=checkbox name=uid key=$obj->get('uid')}></td>
@@ -45,6 +46,7 @@
<tr>
<td colspan="5" class="foot"><input class="formButton" type="submit" value="<{$smarty.const._SUBMIT}>" /></td>
</tr>
+ <{/if}>
</table>
</form>
ついでにバグ
diff -u -r1.1.2.4.2.1 MailjobSendAction.class.php
--- MailjobSendAction.class.php 14 Oct 2006 14:17:49 -0000 1.1.2.4.2.1
+++ MailjobSendAction.class.php 28 Feb 2007 09:16:26 -0000
@@ -134,7 +134,7 @@
$xoopsMailer->setBody($mailjob->getReplaceBody($to_user, $from_user));
if (!$xoopsMailer->send(true)) {
- $link->set('message', $link->get('message') . $xoopsMailer->ErrorInfo);
+ $link->set('message', $link->get('message') . $xoopsMailer->multimailer->ErrorInfo);
}
}
}
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
投稿者: minahito | 投稿日時: 2007/2/28 18:40
Marijuana さんパッチありがとうございます (^^)/
これで大丈夫だと思います。
想定されるツッコミとしては、アクションフォームは発行されてしまうので、本当はこのアクションが実行されないことが理想的だと言われるかもしれませんが、管理操作ではあるし、 2.2 で直せばいいかなと。などと、とりあえず将来的な突っ込み用にメモ。
→画面出なくした
あと Marijuana さんがくれたバグパッチ!
マルチメーラーの吐くエラーコードがジョブリストのエラー収納用フィールドに正しく収められてなかったのですね。
これでジョブにエラーが残るようになり、そしてエラーが検出されたジョブは排除されずに管理画面に残るはずです。なので、 XREA でエラー食らってる人は管理画面でエラーを確認したうえ、再送機能も試せるという一石二鳥状態に。 (^^)/
Beta あたりでここでエラー時処理について話し合って追加した機能なのですがこちらではシミュレート値代入でしかチェックしてないので、ここでその記録と再送についてマジサーバーでテストしてもらえれば助かります。
# あと4時間すればスナップショットが更新されるはず
引用:
これはリストがない状態だと td が5つならぶ表示が無いので、その上下にある colspan=5 が勇み足になってしまうからではないかと一瞬思ったんですが、ヘッダ行に が5つあるんですよね...一応テンプレートパッチしたんですが、 objects = 0 のときにこの画面では出す情報がまったく無いので、やはりこの画面が出ること自体がおかしい気がする…またちょっと弄ります。
これで大丈夫だと思います。
→画面出なくした
あと Marijuana さんがくれたバグパッチ!
マルチメーラーの吐くエラーコードがジョブリストのエラー収納用フィールドに正しく収められてなかったのですね。
これでジョブにエラーが残るようになり、そしてエラーが検出されたジョブは排除されずに管理画面に残るはずです。なので、 XREA でエラー食らってる人は管理画面でエラーを確認したうえ、再送機能も試せるという一石二鳥状態に。 (^^)/
Beta あたりでここでエラー時処理について話し合って追加した機能なのですがこちらではシミュレート値代入でしかチェックしてないので、ここでその記録と再送についてマジサーバーでテストしてもらえれば助かります。
# あと4時間すればスナップショットが更新されるはず
引用:
レイアウトの崩れも確認できませんでした。
これはリストがない状態だと td が5つならぶ表示が無いので、その上下にある colspan=5 が勇み足になってしまうからではないかと一瞬思ったんですが、ヘッダ行に が5つあるんですよね...一応テンプレートパッチしたんですが、 objects = 0 のときにこの画面では出す情報がまったく無いので、やはりこの画面が出ること自体がおかしい気がする…またちょっと弄ります。
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
Re: 2.1RC:sendmailが機能してない?
投稿者: minahito | 投稿日時: 2007/2/28 19:38
調整して、
メール送信を完了したメールジョブは、リストの閲覧、編集、送信を押せなくしました。その代わりにジョブの純粋な閲覧機能を追加して、送信済みのジョブをクリックしたときはそっちが出るようにしています。
で、あとはMisterHさんとしゃのさんにスナップショットが更新されたら設置してもらって、メールジョブ送信後のエラー処理を確認してもらうと...
XREA で送信時にエラーし、そのエラーコードが戻ってきているのであれば、そのメールは送信済みにならず、閲覧画面の messsage 欄で戻ってきたエラーメッセージを確認できると思います。
メール送信を完了したメールジョブは、リストの閲覧、編集、送信を押せなくしました。その代わりにジョブの純粋な閲覧機能を追加して、送信済みのジョブをクリックしたときはそっちが出るようにしています。
で、あとはMisterHさんとしゃのさんにスナップショットが更新されたら設置してもらって、メールジョブ送信後のエラー処理を確認してもらうと...
XREA で送信時にエラーし、そのエラーコードが戻ってきているのであれば、そのメールは送信済みにならず、閲覧画面の messsage 欄で戻ってきたエラーメッセージを確認できると思います。
Re: 2.1RC:sendmailが機能してない?
投稿者: MisterH | 投稿日時: 2007/3/1 2:10
引用:
これは,問題なく動作しました.
引用:
エラーも何も,きれいに送信完了してしまってます.
まだ,メールは送られてきません.
ちなみに,sendmail以外の方式ではちゃんと送れました.
…てか,閲覧画面にはmesssage欄がないんですケド,これは送信エラーが発生したときのみ表示されるんですか?
後,これは個人的な意見なんですケド,メールジョブの新規作成のとこで,「送信」ボタンになってますケド,実際にはメールジョブ一覧のトコから送信作業に移りますよね.
これ,ややこしいと思うので,メールジョブ新規作成の段階では「決定」くらいにした方がいいんじゃないかと思うんですが…
追伸:
CVS last commited time:2007-02-28 19:33
メール送信を完了したメールジョブは、リストの閲覧、編集、送信を押せなくしました。その代わりにジョブの純粋な閲覧機能を追加して、送信済みのジョブをクリックしたときはそっちが出るようにしています。
これは,問題なく動作しました.
引用:
XREA で送信時にエラーし、そのエラーコードが戻ってきているのであれば、そのメールは送信済みにならず、閲覧画面の messsage 欄で戻ってきたエラーメッセージを確認できると思います。
エラーも何も,きれいに送信完了してしまってます.
まだ,メールは送られてきません.
ちなみに,sendmail以外の方式ではちゃんと送れました.
…てか,閲覧画面にはmesssage欄がないんですケド,これは送信エラーが発生したときのみ表示されるんですか?
後,これは個人的な意見なんですケド,メールジョブの新規作成のとこで,「送信」ボタンになってますケド,実際にはメールジョブ一覧のトコから送信作業に移りますよね.
これ,ややこしいと思うので,メールジョブ新規作成の段階では「決定」くらいにした方がいいんじゃないかと思うんですが…
追伸:
CVS last commited time:2007-02-28 19:33
Re: 2.1RC:sendmailが機能してない?
投稿者: minahito | 投稿日時: 2007/3/1 4:54
引用:
ってことは、旧 X2 のマルチメーラークラスがエラーを検出できてないということになります。……うーん……
引用:
これはユーザーリストのほうに出ます。送信完了していないジョブのところで View アイコンを押したときに出る一覧のところですが、送信が終わってしまうのであればこの画面は送信後に閲覧できなくなってます。
なのでまず X2 と同機能のメール送信でなぜ送信できないかというところを突き止めるのが先ですね。(XoopsMultiMailer がエラー検知できないがメールはサーバーから先に送信されないというケースは考えられる)
引用:
日本語にしてるとどっちも「送信」ですけど、前者の「送信」は Submit 、後者の「送信」は Send なんですよね...
Submit=送信は 2.1 全体で統一したグローバル表記です。だからメールジョブ新規作成のところだけ直すと、今度は表記ゆれになっちまいます。また、日本語の都合でこの画面だけ言語定数を変えるというのも、当然英語側も定数が変わってしまうことを考えると(英語ユーザーにとってはまったく意味不明な措置)、あまり前向きな気分になれません。
Submit の訳語を変える(つまり全画面で送信を決定とかに変える)のもキツイですしね。。。なにしろ「決定」ではない画面もあるし。。
引用:XREA で送信時にエラーし、そのエラーコードが戻ってきているのであれば、そのメールは送信済みにならず、閲覧画面の messsage 欄で戻ってきたエラーメッセージを確認できると思います。
エラーも何も,きれいに送信完了してしまってます.
まだ,メールは送られてきません.
ちなみに,sendmail以外の方式ではちゃんと送れました.
ってことは、旧 X2 のマルチメーラークラスがエラーを検出できてないということになります。……うーん……
引用:
…てか,閲覧画面にはmesssage欄がないんですケド,これは送信エラーが発生したときのみ表示されるんですか?
これはユーザーリストのほうに出ます。送信完了していないジョブのところで View アイコンを押したときに出る一覧のところですが、送信が終わってしまうのであればこの画面は送信後に閲覧できなくなってます。
なのでまず X2 と同機能のメール送信でなぜ送信できないかというところを突き止めるのが先ですね。(XoopsMultiMailer がエラー検知できないがメールはサーバーから先に送信されないというケースは考えられる)
引用:
後,これは個人的な意見なんですケド,メールジョブの新規作成のとこで,「送信」ボタンになってますケド,実際にはメールジョブ一覧のトコから送信作業に移りますよね.
これ,ややこしいと思うので,メールジョブ新規作成の段階では「決定」くらいにした方がいいんじゃないかと思うんですが…
日本語にしてるとどっちも「送信」ですけど、前者の「送信」は Submit 、後者の「送信」は Send なんですよね...
Submit=送信は 2.1 全体で統一したグローバル表記です。だからメールジョブ新規作成のところだけ直すと、今度は表記ゆれになっちまいます。また、日本語の都合でこの画面だけ言語定数を変えるというのも、当然英語側も定数が変わってしまうことを考えると(英語ユーザーにとってはまったく意味不明な措置)、あまり前向きな気分になれません。
Submit の訳語を変える(つまり全画面で送信を決定とかに変える)のもキツイですしね。。。なにしろ「決定」ではない画面もあるし。。
Re: 2.1RC:sendmailが機能してない?
投稿者: minahito | 投稿日時: 2007/3/1 12:42
本日いただいたタレコミ情報によりますと(感謝!)
php mail() などで送信でき、 sendmail で送信できないというのは、OP25Bではないか?と言われました。
OP25Bってなんだ!?
ということでぐぐって色々見ているところです。
一応 CVS のほうで、
「multimailer が偽を返しているがエラーメッセージがない場合」
にエラー扱いにならないという抜けがあったので(こういう場合が存在するのかどうかはともかく)、この場合はプログラム側で固定メッセージを入れるようにしました。
この更新分で同じ現象...XOOPS 上でエラー検出がなされず、実際にメールは受け取れない、という状況になった場合は、PHP側でエラーが検出できないケースでメールが行ってないことになるので、ホスティングプロバイダとの間での問題になってきます。
ただ同じ XREA でも問題なく送れたという話があり、なかなか謎...(--;;
php mail() などで送信でき、 sendmail で送信できないというのは、OP25Bではないか?と言われました。
OP25Bってなんだ!?
ということでぐぐって色々見ているところです。
一応 CVS のほうで、
「multimailer が偽を返しているがエラーメッセージがない場合」
にエラー扱いにならないという抜けがあったので(こういう場合が存在するのかどうかはともかく)、この場合はプログラム側で固定メッセージを入れるようにしました。
この更新分で同じ現象...XOOPS 上でエラー検出がなされず、実際にメールは受け取れない、という状況になった場合は、PHP側でエラーが検出できないケースでメールが行ってないことになるので、ホスティングプロバイダとの間での問題になってきます。
ただ同じ XREA でも問題なく送れたという話があり、なかなか謎...(--;;
Re: 2.1RC:sendmailが機能してない?
投稿者: minahito | 投稿日時: 2007/3/1 13:21
また、エラーメッセージは特定のケースでしか遭遇せず分かりにくいので、紹介を兼ねてちょっとスクリーンショットをあげました。こちら。
あるユーザーに対してエラーが検出された場合、メッセージに送信メソッド(PM, Mailer もしくは plugin で追加されるもの)からのエラー報告を収録できます。これらのユーザーはリストから除外されず「再試行番号」を加算されて現在ループから限定的に除外されます。その後、リストでエラーを読んだり、送信不可能なユーザーをリストから除外した後、再度、送信に挑むことができます。2枚目のスクリーンショットにあるように、このメッセージはユーザー単位に記録され、リストで確認しますから、送信失敗がシステムに検出された場合でしか見ることができません。
たとえば 30 秒ルールに引っかかって 1000 人へのメール送信が途中でストップしても、再試行番号 0 のユーザーが終わるまで 1 のユーザーは処理されないという仕組みです。 0->1->2 と再試行番号が切り替わるときに一度送信画面に戻ります。そこで一度仕切りなおすもよし、もう一回送信を試して少しでも数を減らすのもよしという感じです。
また、メッセージがエラーの原因そのものであるかどうかは確実ではありません。この画面では、メールサーバーを立ててないので 100% コケるのは分かっていたのですが、エラーには言語カタログが見つからなかった?件の不満が書き込まれているだけです。ただ、たいていの場合ヒント程度にはなるだろうと思います。
あるユーザーに対してエラーが検出された場合、メッセージに送信メソッド(PM, Mailer もしくは plugin で追加されるもの)からのエラー報告を収録できます。これらのユーザーはリストから除外されず「再試行番号」を加算されて現在ループから限定的に除外されます。その後、リストでエラーを読んだり、送信不可能なユーザーをリストから除外した後、再度、送信に挑むことができます。2枚目のスクリーンショットにあるように、このメッセージはユーザー単位に記録され、リストで確認しますから、送信失敗がシステムに検出された場合でしか見ることができません。
たとえば 30 秒ルールに引っかかって 1000 人へのメール送信が途中でストップしても、再試行番号 0 のユーザーが終わるまで 1 のユーザーは処理されないという仕組みです。 0->1->2 と再試行番号が切り替わるときに一度送信画面に戻ります。そこで一度仕切りなおすもよし、もう一回送信を試して少しでも数を減らすのもよしという感じです。
また、メッセージがエラーの原因そのものであるかどうかは確実ではありません。この画面では、メールサーバーを立ててないので 100% コケるのは分かっていたのですが、エラーには言語カタログが見つからなかった?件の不満が書き込まれているだけです。ただ、たいていの場合ヒント程度にはなるだろうと思います。
Re: 2.1RC:sendmailが機能してない?
受信箱の「_MD_PM_LANG__PREVIOUS」