ホーム > フォーラム > 開発 > コア開発 > 2.1RC:sendmailが機能してない?

2.1RC:sendmailが機能してない?
投稿者: MisterH | 投稿日時: 2007/2/27 21:40 | 閲覧: 31629回
MisterH
ユーザーモジュールのメールジョブ管理から登録ユーザーに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

コメント(23)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/2/28 14:15
minahito
がちょーん。。

とりあえずバグトラッカーに載せておきます
(ちょっと先に手順を確認)

引用:
ただ、ちょっと自信がないんで、一応やり方が間違ってないかどうか確認をお願いします。
互換モジュール→XOOPS コンフィグ→メール設定で、メール送信方法をsendmailにしてパスを設定する
(/usr/sbin/sendmail←ちゃんと確認しました。http://www.xrea.com/?action=specの中ほどにあります。)
ユーザーモジュール→メールジョブ管理→新規作成からユーザー検索→メールの本文やその他を設定・入力する→メールジョブ一覧の送信ボタン→送信
で合ってますか?


合ってます。あとは管理者のメールアドレスの設定ですね。ここでけられてる可能性もなきにしもあらず...
といってもレイアウト崩れなど含めて相当アヤシイ(バグの可能性大)ですが...

----

これいまちょっとさっくりとテストできる環境にないな…

うわさによると XAMPP にメールサーバーがあってローカルでも試せるという話ですが...それも含めて調べてみます。

# 皆さんもテストお願いします。
Re: 2.1RC:sendmailが機能してない? 
投稿者: chatnoir | 投稿日時: 2007/2/28 15:42
chatnoir
同じXREAでテストしてみた。
メール配信されないみたいだなー。

レイアウト崩れは、ヘッダとフッタだけあってぺっちゃんこ。

メールジョブ管理操作欄に閲覧アイコン押すと、まだ送信完了してないメールは正常にデータを取得できるのだけど、送信完了したメールは既にデータがuser_mailjob_linkから削除されてるからからっぽになっちゃう。

昨日メッセンジャーでとむさんとはちょっとお話したけどまだちゃんと追いきれないのでもうちょっと追いかけてからまた投げます。(たぶん

#完了してるかどうかでどのテーブルからデータを引っ張るかとかわけないといけないのかなぁー。
#完了したメールを閲覧するときはaction=MailjobSendの送信ボタンとかがない状態のページがあればいいのかなぁ。
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/2/28 15:54
minahito
引用:
chatnoirさんは書きました:
メールジョブ管理操作欄に閲覧アイコン押すと、まだ送信完了してないメールは正常にデータを取得できるのだけど、送信完了したメールは既にデータがuser_mailjob_linkから削除されてるからからっぽになっちゃう。

(snip)

#完了してるかどうかでどのテーブルからデータを引っ張るかとかわけないといけないのかなぁー。
#完了したメールを閲覧するときはaction=MailjobSendの送信ボタンとかがない状態のページがあればいいのかなぁ。


あ、そういうことか!
あの閲覧ボタンはMailjob_linkListアクションへのリンクだから、送信後のメールジョブのコントロールからは取り除いたほうがいいと思います。

リストのないメールジョブの Send が開けるのも変ですね。あれを View との共有にするか、 View を増やしてしまうか...
Re: 2.1RC:sendmailが機能してない? 
投稿者: chatnoir | 投稿日時: 2007/2/28 15:55
chatnoir
こっちで追わなくてもわかってもらえたならラッキー♪

んじゃ、そういうことで後よろしく(ぉぃ
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/2/28 16:02
minahito
引用:

chatnoirさんは書きました:
こっちで追わなくてもわかってもらえたならラッキー♪

んじゃ、そういうことで後よろしく(ぉぃ


いやいやいやいやいや、
レイアウト崩れは追いますからメール送信失敗のほうよろです。

これちょっと僕の環境(状況)じゃ確かめられないので...
Re: 2.1RC:sendmailが機能してない? 
投稿者: Marijuana | 投稿日時: 2007/2/28 18:04
Marijuana
引用:
レイアウト崩れは追いますからメール送信失敗のほうよろです。

sendmailでもちゃんと送信されましたよ。

一度送った奴だと送信ボタン押しても送れないですけどね
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/2/28 18:19
minahito
引用:

Marijuanaさんは書きました:
引用:
レイアウト崩れは追いますからメール送信失敗のほうよろです。

sendmailでもちゃんと送信されましたよ。


ありがとうございます。
すると設定の問題? XREA の問題?

引用:
一度送った奴だと送信ボタン押しても送れないですけどね


っていうか送信ボタンが出るのがおかしいんですよね。ジョブはもうないんだから。このへん List が出せる問題と含めて調整ですね。
Re: 2.1RC:sendmailが機能してない? 
投稿者: Marijuana | 投稿日時: 2007/2/28 18:21
Marijuana
引用:
レイアウト崩れ

余計なボタンが出るだけなんでテンプレ修正じゃダメ?
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が機能してない? 
投稿者: Tom_G3X | 投稿日時: 2007/2/28 18:25
Tom_G3X
Tomです。

僕もトラブル再現出来ませんでした。

環境、XREA (s151 : php5)で、
メール設定も、PHP と、 sendmail と変えてみましたが、
どちらも正常に動作してるように見えますし、
レイアウトの崩れも確認できませんでした。
Re: 2.1RC:sendmailが機能してない? 
投稿者: Tom_G3X | 投稿日時: 2007/2/28 18:34
Tom_G3X
Tomです。

引用:

Marijuanaさんは書きました:
余計なボタンが出るだけなんでテンプレ修正じゃダメ?


確か、Smartyの場合、$objects がカラッポの時は、foreach自体実行されなかったと記憶しています。
ですので、Table のフッターだけが表示されるのであれば、仕様っちゃ〜仕様かもしれないですが、
この場合、ヘンですので、if で消してもいいかもですね。


あと、送信済のメールは、「送信」ボタンを表示しないようにしてもいいかもですね。
たぶん、これもテンプレートで出来そうですね。

Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/2/28 18:40
minahito
Marijuana さんパッチありがとうございます (^^)/
これで大丈夫だと思います。

想定されるツッコミとしては、アクションフォームは発行されてしまうので、本当はこのアクションが実行されないことが理想的だと言われるかもしれませんが、管理操作ではあるし、 2.2 で直せばいいかなと。などと、とりあえず将来的な突っ込み用にメモ。
→画面出なくした

あと Marijuana さんがくれたバグパッチ!
マルチメーラーの吐くエラーコードがジョブリストのエラー収納用フィールドに正しく収められてなかったのですね。

これでジョブにエラーが残るようになり、そしてエラーが検出されたジョブは排除されずに管理画面に残るはずです。なので、 XREA でエラー食らってる人は管理画面でエラーを確認したうえ、再送機能も試せるという一石二鳥状態に。 (^^)/

Beta あたりでここでエラー時処理について話し合って追加した機能なのですがこちらではシミュレート値代入でしかチェックしてないので、ここでその記録と再送についてマジサーバーでテストしてもらえれば助かります。

# あと4時間すればスナップショットが更新されるはず

引用:
レイアウトの崩れも確認できませんでした。


これはリストがない状態だと td が5つならぶ表示が無いので、その上下にある colspan=5 が勇み足になってしまうからではないかと一瞬思ったんですが、ヘッダ行に が5つあるんですよね...一応テンプレートパッチしたんですが、 objects = 0 のときにこの画面では出す情報がまったく無いので、やはりこの画面が出ること自体がおかしい気がする…またちょっと弄ります。
Re: 2.1RC:sendmailが機能してない? 
投稿者: chatnoir | 投稿日時: 2007/2/28 18:52
chatnoir
検証サーバ(s4.s219)両方PHP4.4.4だったから
5のとこで試そうとおもってインストしてる途中でパッチ出た。。。(T-T

別件ですが、とむさんへ。

昨日「修正して〜」ってお願いをしたファイルの中の
templates/user_userform.html
5行目
maxlengthが32から31に変更になってるけどあえてしたのかしら?


Re: 2.1RC:sendmailが機能してない? 
投稿者: Tom_G3X | 投稿日時: 2007/2/28 18:59
Tom_G3X
引用:

別件ですが、とむさんへ。

昨日「修正して〜」ってお願いをしたファイルの中の
templates/user_userform.html
5行目
maxlengthが32から31に変更になってるけどあえてしたのかしら?


ぶぶ!!すまない、間違い無く、TYPO かと・・・・・・・・・・・orz
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/2/28 19:38
minahito
調整して、
メール送信を完了したメールジョブは、リストの閲覧、編集、送信を押せなくしました。その代わりにジョブの純粋な閲覧機能を追加して、送信済みのジョブをクリックしたときはそっちが出るようにしています。

で、あとはMisterHさんとしゃのさんにスナップショットが更新されたら設置してもらって、メールジョブ送信後のエラー処理を確認してもらうと...

XREA で送信時にエラーし、そのエラーコードが戻ってきているのであれば、そのメールは送信済みにならず、閲覧画面の messsage 欄で戻ってきたエラーメッセージを確認できると思います。
Re: 2.1RC:sendmailが機能してない? 
投稿者: MisterH | 投稿日時: 2007/3/1 2:10
MisterH
引用:
メール送信を完了したメールジョブは、リストの閲覧、編集、送信を押せなくしました。その代わりにジョブの純粋な閲覧機能を追加して、送信済みのジョブをクリックしたときはそっちが出るようにしています。

これは,問題なく動作しました.

引用:
XREA で送信時にエラーし、そのエラーコードが戻ってきているのであれば、そのメールは送信済みにならず、閲覧画面の messsage 欄で戻ってきたエラーメッセージを確認できると思います。

エラーも何も,きれいに送信完了してしまってます.
まだ,メールは送られてきません.
ちなみに,sendmail以外の方式ではちゃんと送れました.

…てか,閲覧画面にはmesssage欄がないんですケド,これは送信エラーが発生したときのみ表示されるんですか?



後,これは個人的な意見なんですケド,メールジョブの新規作成のとこで,「送信」ボタンになってますケド,実際にはメールジョブ一覧のトコから送信作業に移りますよね.
これ,ややこしいと思うので,メールジョブ新規作成の段階では「決定」くらいにした方がいいんじゃないかと思うんですが…


追伸:
CVS last commited time:2007-02-28 19:33
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/3/1 4:54
minahito
引用:
引用:
XREA で送信時にエラーし、そのエラーコードが戻ってきているのであれば、そのメールは送信済みにならず、閲覧画面の messsage 欄で戻ってきたエラーメッセージを確認できると思います。

エラーも何も,きれいに送信完了してしまってます.
まだ,メールは送られてきません.
ちなみに,sendmail以外の方式ではちゃんと送れました.


ってことは、旧 X2 のマルチメーラークラスがエラーを検出できてないということになります。……うーん……

引用:
…てか,閲覧画面にはmesssage欄がないんですケド,これは送信エラーが発生したときのみ表示されるんですか?


これはユーザーリストのほうに出ます。送信完了していないジョブのところで View アイコンを押したときに出る一覧のところですが、送信が終わってしまうのであればこの画面は送信後に閲覧できなくなってます。

なのでまず X2 と同機能のメール送信でなぜ送信できないかというところを突き止めるのが先ですね。(XoopsMultiMailer がエラー検知できないがメールはサーバーから先に送信されないというケースは考えられる)

引用:
後,これは個人的な意見なんですケド,メールジョブの新規作成のとこで,「送信」ボタンになってますケド,実際にはメールジョブ一覧のトコから送信作業に移りますよね.
これ,ややこしいと思うので,メールジョブ新規作成の段階では「決定」くらいにした方がいいんじゃないかと思うんですが…


日本語にしてるとどっちも「送信」ですけど、前者の「送信」は Submit 、後者の「送信」は Send なんですよね...

Submit=送信は 2.1 全体で統一したグローバル表記です。だからメールジョブ新規作成のところだけ直すと、今度は表記ゆれになっちまいます。また、日本語の都合でこの画面だけ言語定数を変えるというのも、当然英語側も定数が変わってしまうことを考えると(英語ユーザーにとってはまったく意味不明な措置)、あまり前向きな気分になれません。

Submit の訳語を変える(つまり全画面で送信を決定とかに変える)のもキツイですしね。。。なにしろ「決定」ではない画面もあるし。。
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/3/1 12:42
minahito
本日いただいたタレコミ情報によりますと(感謝!)
php mail() などで送信でき、 sendmail で送信できないというのは、OP25Bではないか?と言われました。

OP25Bってなんだ!?
ということでぐぐって色々見ているところです。

一応 CVS のほうで、
「multimailer が偽を返しているがエラーメッセージがない場合」
にエラー扱いにならないという抜けがあったので(こういう場合が存在するのかどうかはともかく)、この場合はプログラム側で固定メッセージを入れるようにしました。

この更新分で同じ現象...XOOPS 上でエラー検出がなされず、実際にメールは受け取れない、という状況になった場合は、PHP側でエラーが検出できないケースでメールが行ってないことになるので、ホスティングプロバイダとの間での問題になってきます。

ただ同じ XREA でも問題なく送れたという話があり、なかなか謎...(--;;
Re: 2.1RC:sendmailが機能してない? 
投稿者: minahito | 投稿日時: 2007/3/1 13:21
minahito
また、エラーメッセージは特定のケースでしか遭遇せず分かりにくいので、紹介を兼ねてちょっとスクリーンショットをあげました。こちら
あるユーザーに対してエラーが検出された場合、メッセージに送信メソッド(PM, Mailer もしくは plugin で追加されるもの)からのエラー報告を収録できます。これらのユーザーはリストから除外されず「再試行番号」を加算されて現在ループから限定的に除外されます。その後、リストでエラーを読んだり、送信不可能なユーザーをリストから除外した後、再度、送信に挑むことができます。2枚目のスクリーンショットにあるように、このメッセージはユーザー単位に記録され、リストで確認しますから、送信失敗がシステムに検出された場合でしか見ることができません。

たとえば 30 秒ルールに引っかかって 1000 人へのメール送信が途中でストップしても、再試行番号 0 のユーザーが終わるまで 1 のユーザーは処理されないという仕組みです。 0->1->2 と再試行番号が切り替わるときに一度送信画面に戻ります。そこで一度仕切りなおすもよし、もう一回送信を試して少しでも数を減らすのもよしという感じです。

また、メッセージがエラーの原因そのものであるかどうかは確実ではありません。この画面では、メールサーバーを立ててないので 100% コケるのは分かっていたのですが、エラーには言語カタログが見つからなかった?件の不満が書き込まれているだけです。ただ、たいていの場合ヒント程度にはなるだろうと思います。
Re: 2.1RC:sendmailが機能してない? 
投稿者: Tom_G3X | 投稿日時: 2007/3/1 14:41
Tom_G3X
引用:

minahitoさんは書きました:

ただ同じ XREA でも問題なく送れたという話があり、なかなか謎...(--;;


すいません。この件、訂正します。

昨日のテスト、送信時に何のエラーも表示されなかったので、
メールの着信をしっかり確認していませんでした。

本日再度確認してみましたら、
XREAにおいて、PHP Mail だけしかメールが着信しませんでした。
Sendmail では、メールは届きませんでした。

受信箱の「_MD_PM_LANG__PREVIOUS」 
投稿者: MisterH | 投稿日時: 2007/4/21 13:45
MisterH
以前の投稿の続きですが,sendmailは相変わらず機能してないっぽいです.
まぁ,これはまだ手つかずなんだと思うので今回の本題ではなく…

全然バグでもなんでもないと思いますが,
受信箱で,本来ならば「前のメッセージ|次のメッセージ」と表示されるべきところが,
「_MD_PM_LANG__PREVIOUS|次のメッセージ」となっているので,報告までに.

投票(0)

新しいものから | 古いものから | RSS feed
 
To Top