1.由于网站无需验证,只需一封欢迎邮件,在config/intiailzers/devise.rb里面配置

config.allow_unconfirmed_access_for = nil #2.days

2.配置user--编辑app/models/user.rb文件,先写一下数据这一块

class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, #末尾添加,号
:confirmable, :lockable #添加这一行 # Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
end
 
3.编辑20150504141218_devise_create_users.....对照代码去掉#即可

          ## Confirmable
t.string :confirmation_token #去掉首位注释#号 t.datetime :confirmed_at #去掉首位注释#号 t.datetime :confirmation_sent_at #去掉首位注释#号 t.string :unconfirmed_email # Only if using reconfirmable #去掉首位注释#号 ## Lockable
t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts t.string :unlock_token # Only if unlock strategy is :email or :both #去掉首位注释#号 t.datetime :locked_at #去掉首位注释#号 -----------------------------.

发现报错

rake aborted!
NoMethodError: undefined method `attr_accessible' for User (call 'User.connection' to establish a connection):Class

之后百度找到

http://stackoverflow.com/questions/23743603/undefined-method-attr-accessible-error-for-user

attr_accessible is not available for Rails version 4+. You would have to go with strong parameters.

With Strong Parameters, attribute whitelisting has been moved to controller level. Remove the attr_accessible call from your model.

Here is an example in Rails Guide of how to use Strong Parameters

In your case you can do something like this:

class UsersController < ApplicationController
## ...
def create
@user = User.new(user_params) ## Invoke user_params method
if @user.save
redirect_to @user, notice: 'User was successfully created.'
else
render action: 'new'
end
end
## ... private
## Strong Parameters
def user_params
params.require(:user).permit(:name, :password_digest, :password, :password_confirmation)
end
end

之后就删除了attr_accessible :email, :password, :password_confirmation, :remember_me

end
然后重新部署数据库,才能重新检测同一个邮箱是否接受邮件,你也可以重新换一个邮箱注册,因为没有修改config/下面的文件
rake db:migrate:reset
 
2.先测试下,邮件服务器配置config/initialize/devise.rb

config.mailer_sender = 'XXXXXXXX@qq.com' #将邮件服务器地址写成自己的邮箱,作为发送方邮件

3.编辑/config/application.rb,将下列代码添加到class Application < Rails::Application中即可,本人使用的是qq邮箱发送,需要提前去qq邮箱里面打开相应的smtp服务

config.action_mailer.raise_delivery_errors = true     #注意,在development.rb下需修改成true     
#添加如下几行代码
config.action_mailer.default_url_options = { :host => "localhost:3000" } #提示中有提到需要配置,即执行rails g devise:install
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address => "smtp.qq.com",
:port => 25,
:domain => "qq.com", #qq.com
:authentication => :login,#几种认证方式:plain,直接传递;login,Base64码传递;cram_md5,md5加密传递
:user_name => "xxxxxxx@qq.com", #修改邮箱
:password => "xxxxxxxx" #修改正确的密码 }

4.本人是用qq测的,所以也按照上面的方法,但还是不行,页面报错535 Authentication failed

百度了半天还是不行,后来看到了 https://ruby-china.org/topics/8918 这个帖子

看到企业邮箱是加了@XXX.com,那我这个是个人的邮箱,应该不需要就删掉了这些.....

然后ctrl+C关闭rails服务器,然后rake db:migrate:reset,重新注册用户....居然发送成功了,来张截图

rails4.2~devise邮箱测试的更多相关文章

  1. SSL邮件发送(腾讯企业邮箱测试通过,可以支持多附件)

    参考网址:http://www.cnblogs.com/LUA123/p/5575134.html ,谢谢! package net.common.utils.common; import java. ...

  2. C# 发送邮件,QQ企业邮箱测试成功

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  3. c# 发送邮箱,企业邮箱测试成功

    今天在项目中需要实现一个发送邮箱的功能,来实现用户邮箱激活功能!!! 之前采用的是个人的邮箱进行测试,一切都是很顺利的,后来换成了公司的企业邮箱,遇到了一点小问题,问题如下: 发送邮件失败,原因:命令 ...

  4. 已使用 163 邮箱测试通过,且支持 SSL 连接。 发送邮件

    示例:Jack 发送一封邮件给 Rose. public class SendMail {     public static void main(String[] args) {         b ...

  5. 杂项之使用qq邮箱发送邮件

    杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...

  6. JavaMail简单版实验测试

    前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入 ...

  7. QQ邮箱发送邮件,出现mail from address must be same as authorization user错误

    之前做的一个系统,有个发送邮件的功能,一直能正常使用,今天同事说QQ邮箱发送不了. 立马着手调试,发现服务器一直出现“mail from address must be same as authori ...

  8. qq邮箱发送

    454 Authentication failed, please open smtp flag first!用QQ邮箱测试报错 我用QQ邮箱测试javamail发送邮件的功能,用户名密码设置正确,却 ...

  9. Google Play 购买(IAB)测试流程

    Google Play 购买(IAB)测试流程 0. 前言 虽然Google 官方也有说明,但是说话很含糊(英文原文也很含糊),很多时候不清楚它到底表达什么.而且帮助文档和开发文档是分开的,可能常常出 ...

随机推荐

  1. The user specified as a definer ('root'@'%') does not exist

    The user specified as a definer ('root'@'%') does not exist 此种报错主要是针对访问视图文件引起的(没有权限) 解决方法: 2.进入mysql ...

  2. 历史命令:history

    [root@linux ~]# history [n][root@linux ~]# history [-c][root@linux ~]# history [-raw] histfiles参数:n ...

  3. 你不知道的this指向

    javascript中,我们预想的this指向,有时候与预期不一样,直接上经典例子 window.name=2; var test={ 'name':1, 'getName':function(){ ...

  4. 向 Git 服务器添加 SSH 公钥

    . . . . . 在网上很少找到文章有提到如何将自己的 Git 远程仓库配置成可以通过 SSH 公钥方式认证的,而几乎清一色都是告诉你怎么通过 web 界面向 GitHub 添加 SSH 公钥.LZ ...

  5. Google统计

    <!-- Google Analytics --><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i ...

  6. 关于Intent的七大重要属性

    在Android 中,Intent用来封装两个Activity之间的调用意图,实现两个Activity之间的跳转,并传递信息. Intent的七大重要属性:ComponentName Action   ...

  7. yum安装出错

    [root@lxh yum.repos.d]# yum install -y samba Loaded plugins: fastestmirror, refresh-packagekit, secu ...

  8. 网络-->监控-->OID-->BGP

    说明:暂时发现只适合cisco设备,h3c的交换机只支持部分OID(支持版本.AS号.ROUTER-ID)

  9. 哈哈,修改PHP5.4.44语法成功

    作为一个脚本语言,面向对象的继承基本上不想用到,强类型比较也想使用==直接比较.作为专业程序员不想让PHP解释器代劳过多. 修改了这个MOD版本,效果杠杠的.

  10. Java 验证码、二维码

    Java 验证码.二维码 资源 需要:   jelly-core-1.7.0.GA.jar网站:   http://lychie.github.io/products.html将下载下来的 jelly ...