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. Ansible学习笔记

    一.Ansible简介 Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 其特性有: ①模块化:通过调用相关模块,完成指定任 ...

  2. Mediator(中介者)-对象行为型模式

    1.意图 用一个中介对象来封装一系列的对象交互.中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 2.动机 通过将集体行为封装在一个单独的中介者对象中,中介者 ...

  3. linux 系统服务

    此文涉及的命令:service.chkconfig. 概念 daemon 的主要分类 stand_alone:此 daemon 可以自行单独启动服务 属性:daemon 启动并加载到内存后就一直占用内 ...

  4. python打印服务器所有进程

    #有时候我们需要查看服务器上所有进程,来判断哪些进程是否已经称为僵尸进程#!/usr/local/bin/python3.5 import psutil for i in psutil.pids(): ...

  5. c程序中出现segment error 和 bus error 的原因

    在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下 段错误: 对一个NULL指针解引用. 访问程序进程以外的内存空间. 实际上,第 ...

  6. Java 的replace和replaceAll的使用

    (1)replace() 方法通过用 newChar 字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串. public String replace(char oldChar, ...

  7. leveldb 学习笔记之VarInt

    在leveldb在查找比较时的key里面保存key长度用的是VarInt,何为VarInt呢,就是变长的整数,每7bit代表一个数,第8bit代表是否还有下一个字节, 1. 比如小于128(一个字节以 ...

  8. java中trim()函数是什么

    trim() 去除字符串前缀和后缀空格 文件名:Test.java ,编译通过 public class Test {     public static void main(String args[ ...

  9. RandomAccessFile拆分合并文件

    import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java. ...

  10. Monkeyrunner小脚本关于camera的使用

    一下代码涉及自动执行camera,属性一个小设置,恢复初始值,并在中间添加截屏功能 将两个截屏进行前后对比,并返回值 适合初学者,刚刚了解monkeyrunner 的人员来看 注意:一下脚本如果不能执 ...