Android 安卓:在没有用户干预的情况下发送电子邮件…时间间隔?服务不可用?

Android 安卓:在没有用户干预的情况下发送电子邮件…时间间隔?服务不可用?,android,email,android-asynctask,Android,Email,Android Asynctask,我正在使用以下代码将激活码发送到用户的电子邮件帐户(以下是在Android中从网站发送电子邮件而无需用户干预(无意图)) 方法: 想法很简单:只需在后台使用用户的电子邮件将激活码与电子邮件一起发送回用户的电子邮件 问题: 第一次按下激活按钮,一切正常,激活码在指定的电子邮件中收到 但是,当我从第二次按下激活按钮时,它只会发出消息“生成激活码”,但没有“成功发送激活码!\n请在5分钟后检查电子邮件”,因此根本没有收到电子邮件 我想问一下 执行此类服务(smtp.gmail.com)是否有最短时间间

我正在使用以下代码将激活码发送到用户的电子邮件帐户(以下是在Android中从网站
发送电子邮件而无需用户干预(无意图)

方法: 想法很简单:只需在后台使用用户的电子邮件将激活码与电子邮件一起发送回用户的电子邮件

问题: 第一次按下激活按钮,一切正常,激活码在指定的电子邮件中收到

但是,当我从第二次按下激活按钮时,它只会发出消息“生成激活码”,但没有“成功发送激活码!\n请在5分钟后检查电子邮件”,因此根本没有收到电子邮件

我想问一下

  • 执行此类服务(
    smtp.gmail.com
    )是否有最短时间间隔?5分钟后我再次按下,电子邮件仍然无法发送。如果没有,如何修改代码

  • 除了gmail,还有其他电子邮件吗

  • 如果我的应用程序是使用此服务发布的,在这种情况下,许多用户可能会同时请求激活码,该服务是否不可用

  • 提前谢谢

    编码如下:
    按钮\u激活。setOnClickListener(新的OnClickListener()
    {
    公共void onClick(视图v)
    {
    custom_email=EditText_email.getText().toString();
    自定义_email_pw=EditText_email_pw.getText().toString();
    如果(自定义电子邮件长度()!=0和自定义电子邮件长度()!=0)
    {
    SharedReferences settings=settings.this.getSharedReferences(“MyApp”,0);
    SharedReferences.Editor e=settings.edit();
    e、 putString(“自定义电子邮件”,自定义电子邮件);
    e、 putString(“自定义电子邮件”,自定义电子邮件);
    e、 提交();
    SendTask sTask=新建SendTask();
    sTask.execute();
    返回;
    }
    类SendTask扩展了AsyncTask
    {    
    @凌驾
    受保护的void onPreExecute()
    {    
    Toast.makeText(Settings.this,“生成激活码…”,Toast.LENGTH_SHORT.show();
    super.onPreExecute();
    }    
    @凌驾
    受保护字符串doInBackground(整数…参数)
    {           
    {
    SharedReferences settings=settings.this.getSharedReferences(“MyApp”,0);
    自定义电子邮件=settings.getString(“自定义电子邮件”,null);
    custom_email_pw=settings.getString(“custom_email_pw”,null);
    Looper.prepare();
    邮件m=新邮件(自定义电子邮件、自定义电子邮件);
    字符串[]toArr={custom_email};
    m、 将_设置为(toArr);
    m、 从(“from@gmail.com");
    m、 设置主题(“应用程序:电子邮件激活码”);
    m、 set_body(“电子邮件激活码为123”);
    尝试
    { 
    if(m.send())
    {                       
    Toast.makeText(Settings.this,“激活码成功发送!\n请在5分钟后检查电子邮件。”,Toast.LENGTH_LONG)。show();//成功
    } 
    其他的
    {                       
    Toast.makeText(Settings.this,“激活码发送失败!”,Toast.LENGTH_LONG.show();//失败
    } 
    } 
    捕获(例外e)
    {           
    Toast.makeText(Settings.this,“发送激活码时出现问题!”+e,Toast.LENGTH_LONG.show();//其他一些问题
    }               
    loop.loop();
    }
    返回“”;
    }    
    @凌驾
    受保护的void onProgressUpdate(整数…进度)
    {    
    super.onProgressUpdate(进度);
    }    
    @凌驾
    受保护的void onPostExecute(字符串r)
    {    
    super.onPostExecute(r);
    }    
    }
    
    button_activation.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v) 
        {
            custom_email = EditText_email.getText().toString();
            custom_email_pw = EditText_email_pw.getText().toString();
            if (custom_email.length()!=0 && custom_email_pw.length()!=0)
            {
                SharedPreferences settings = Settings.this.getSharedPreferences("MyApp",0);
                SharedPreferences.Editor e = settings.edit();
                e.putString("custom_email",custom_email);
                e.putString("custom_email_pw",custom_email_pw);
                e.commit();
    
                SendTask sTask = new SendTask();    
                sTask.execute();
                return;
            }
    
    
    class SendTask extends AsyncTask<Integer, Integer, String>
    {    
        @Override    
        protected void onPreExecute() 
        {    
            Toast.makeText(Settings.this, "Generating Activation code...", Toast.LENGTH_SHORT).show();  
            super.onPreExecute();    
        }    
    
        @Override    
        protected String doInBackground(Integer... params) 
        {           
            {
                SharedPreferences settings = Settings.this.getSharedPreferences("MyApp",0);
                custom_email = settings.getString("custom_email",null);
                custom_email_pw = settings.getString("custom_email_pw",null);
    
    
                Looper.prepare();  
                Mail m = new Mail(custom_email, custom_email_pw);
                String[] toArr = {custom_email};
                m.set_to(toArr);
                m.set_from("from@gmail.com");
                m.set_subject("App: Email Activation Code");
                m.set_body("The email Activation Code is 123");
    
                try 
                { 
                    if(m.send()) 
                    {                       
                        Toast.makeText(Settings.this, "Activation code sent successfully!\nPlease check email after 5 minutes.", Toast.LENGTH_LONG).show();  // success
                    } 
                    else 
                    {                       
                        Toast.makeText(Settings.this, "Activation code sending failure!", Toast.LENGTH_LONG).show();  // failure
                    } 
                } 
                catch(Exception e) 
                {           
                    Toast.makeText(Settings.this, "There were problems sending activation code!" + e, Toast.LENGTH_LONG).show(); // some other problem
                }               
                Looper.loop();
            }
            return "";    
        }    
    
        @Override    
        protected void onProgressUpdate(Integer... progress) 
        {    
            super.onProgressUpdate(progress);    
        }    
    
        @Override    
        protected void onPostExecute(String r) 
        {    
            super.onPostExecute(r);    
        }    
    }