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

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

ただいまの
回答率

89.52%

メールが届かなくなりました

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 808

kentros511

score 70

public class MailAction extends  LookupDispatchAction {

     protected Map<String,String> getKeyMethodMap() {
        // キーとメソッドの対応を登録する
        Map<String,String> map = new HashMap<String,String>();
        map.put("firster","lookupDispatchA");
        map.put("forgets","lookupDispatchB");
        return map;
    }



    private String dbName="staff";
    private String user = "root";
    private String pass = "";





    public ActionForward lookupDispatchA  (ActionMapping mapping
            ,ActionForm form
            ,HttpServletRequest request
            ,HttpServletResponse response) throws Exception {
        request.setCharacterEncoding("UTF-8");

        Mailform frm = (Mailform)form;
        String name = frm.getName();
        String address = frm.getAddress();
        String pwd = frm.getPwd();

        System.out.println(pwd);



         //actionMessaages作成
        ActionMessages errbox = new ActionMessages();
        ActionMessage errmsg1 = new ActionMessage("errors.empty","未入力");
        ActionMessage errmsg2 = new ActionMessage("errors.email","半角入力");
        ActionMessage errmsg3= new ActionMessage("errors.already","既出");


        if( name == null || address == null) {/*未入力*/
        errbox.add("empty",errmsg1);
        saveErrors(request,errbox);
        return mapping.findForward("back");
        }/*ActionMessage(string、String>はダメ*/


        /*半角入力*/
         if (address != "[\\d[a-zA-Z]*]+@[\\d[a-zA-Z]*]"){

            errbox.add("half",errmsg2);
            saveErrors(request,errbox);
            return mapping.findForward("back");
            }

            /*configのsource取得*/

         DBchinuki  db = new DBchinuki();
         db.getDBConnection(dbName,user,pass);
         int connect = db.getDBConnection(dbName,user,pass);
         if(connect == 1) {
             return mapping.findForward("issue");
         } else  {
             return mapping.findForward("miss");
         }


         String diagno = db.seldb(address);/*登録者かどうか検索*/
            System.out.println("/**********************************/"+diagno);

         /*完了済み*/
         if(address == diagno) {
             errbox.add("already",errmsg3);

          saveErrors(request,errbox);
          return mapping.findForward("issue");

         }

         db.insdb(name, address,pwd);/*登録*/
         db.throwDBConnection();  /*切断*/
         SendMail sm = new SendMail(address, pwd);
         int TS = sm.doMail();
         if(TS == 1) {
             return mapping.findForward("issue");
         } else {
             return mapping.findForward("miss");
         }





    }

public ActionForward lookupDispatchB(ActionMapping mapping, /*忘れた方*/
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws  Exception {
    Mailform frm = (Mailform)form;
    String address = frm.getAddress();
    String address1 = frm.getAddress1();
    String pwd = frm.getPwd();

    DBchinuki db = new DBchinuki();
    String diagno = db.seldb(address);/*登録者か確認*/



     //actionMessaages作成
    ActionMessages errbox = new ActionMessages();
    ActionMessage errmsg1 = new ActionMessage("errors.empty","未入力");
    ActionMessage errmsg2 = new ActionMessage("errors.email","半角入力");
    ActionMessage errmsg4 = new ActionMessage("errors.unregist","未登録");

    if(address1 == null ) {/*未入力*/
    errbox.add("empty",errmsg1);
    saveErrors(request,errbox);
    return mapping.findForward("back");
    }/*ActionMessage(string、String>はダメ*/

    /*半角入力*/
     if (address1 != "[\\d[a-zA-Z]*]+@[\\d[a-zA-Z]*]"){
        errbox.add("half",errmsg2);
        saveErrors(request,errbox);
        return mapping.findForward("back");

        }


     db.getDBConnection(dbName,user,pass);
int connect = db.getDBConnection(dbName,user,pass);
if(connect == 1) {
    return mapping.findForward("issue");
} else  {
    return mapping.findForward("miss");
}






     /*jquery変数pwd受け渡し*/


     db.updb(pwd,address1);/*更新 addressは条件*/



     /*未登録*/
     if(address1 != diagno)
     {
         errbox.add("unregist",errmsg4);

         saveErrors(request,errbox);
         return mapping.findForward("back");

     }

     db.throwDBConnection();  /*切断*/
    /*configのsource取得*/
     SendMail sm = new SendMail(address1, pwd);
     int TS = sm.doMail();
     if(TS == 1) {
         return mapping.findForward("issue");
     } else {
         return mapping.findForward("miss");
     }

}
}

要点 困っている点 コンソールにはランダムパスワードが表示されているがメールが届かないしDBに登録されない

エラー 到達不能コード String diagno = db.seldb(address);/A  db.updb(pwd,address1);/*更新 addressは条件*/Bででてます ※除去してはいけない処理です

どこかまちがっているのかわかりません。 javamailのバージョンが表示されなくなりました。

添削とアドバイスお願いします

DBに接続してメールが届くように戻したいです
さらにエラーメッセージも条件の時のみ表示させたいです
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

処理の途中にも関わらずActionForwardを返している為、 到達不能エラーが発生しています。

メソッドが失敗?した時だけ、ActionForwardを返すようにコードを書き変えればいいかと。

if(connect == 1) {
             return mapping.findForward("issue");
         } else  {
             return mapping.findForward("miss");
}

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/12/15 14:39

    そうですよね
    質問してから気づきなおしましたが またとじ{}の数が合わなくなりました

    キャンセル

  • 2015/12/15 14:39

    いつも回答してくれて感謝してます

    キャンセル

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

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