Gmail을 이용한 계정 인증

16475 단어 gmail

환경


  • ruby ​​2.3.0p0
  • CentOS Linux release 7.2.1511
  • Google 계정 (2 단계 인증)

  • Google 계정 측 설정



    2단계 인증을 설정하지 않은 경우 설정합시다.

    2단계 인증 사용(SMS로 인증)


  • 계정 설정 화면로 전환
  • 암호 및 로그인 방법 섹션에서 2단계 인증을 클릭합니다.
  • 시작을 클릭합니다.
  • 암호를 묻는 메시지가 나타나면 입력하고 로그인을 클릭하십시오.
  • 사용할 전화 번호와 코드를 얻는 방법을 확인한 다음 시도를 클릭하십시오.
  • SMS가 도착하기 때문에 나열된 코드를 입력 한 후 다음을 클릭하십시오.
  • 확인하라는 메시지가 표시되므로 켜기를 클릭합니다.

  • PIN 코드로 인증 추가



    스마트 폰에 Authy를 넣어서 다 요소 인증을 관리하고 있으므로 Google 계정도 마찬가지로 설정하기로 한다(하지 않아도 좋다)

    전항의 계속부터 시작한다
  • 2단계 인증 프로세스 화면에서 두 번째 단계 추가로 설정을 클릭합니다.
  • 인증 시스템 앱에서 설정을 클릭합니다.
  • 선택하고 다음을 클릭합니다.
  • QR 코드가 표시되므로 인증 시스템 앱에 등록
  • 인증 시스템 앱에 표시되는 코드를 입력하고 확인을 클릭합니다.
  • 마침을 클릭합니다.
  • 인증 시스템 앱이 기본값임을 확인할 수 있습니다.

  • 애플리케이션 비밀번호 가져오기



    이번에 만드는 응용 프로그램의 비밀번호를 얻습니다.
  • 계정 설정 화면로 전환
  • 비밀번호 및 로그인 방법 섹션에서 앱 비밀번호를 클릭합니다.
  • 기기 설정을 클릭합니다.
  • 기타 (이름 입력) 선택
  • 이름을 입력하고 생성을 클릭합니다.

    ※다시 패스워드를 요구하면 로그인해 계속한다
  • 16 자리 암호가 표시되므로 삼가하십시오.

  • 프로그램



    여기서 빠진 것은 패스워드에 이용하는 것이 전항에서 취득한 「어플리케이션 패스워드」를 이용한다고 하는 곳

    4행~7행째, 9행째를 적당히 읽어내기

    mail.rb
    # -*- coding: utf-8 -*-
    require 'mail'
    
    mail_from   = '自分の Gmail アドレス'
    mail_passwd = '取得した16桁のアプリケーションパスワード'
    mail_to     = '送信先メールアドレス'
    mail_subject= 'メールタイトル'
    mail_body   = <<EOS
    メール本文
    EOS
    
    Mail.defaults do
      delivery_method :smtp, {
        :address => 'smtp.gmail.com',
        :port => 587,
        :domain => 'example.com',
        :user_name => "#{mail_from}",
        :password => "#{mail_passwd}",
        :authentication => :login,
        :enable_starttls_auto => true
      }
    end
    
    m = Mail.new do
      from "#{mail_from}"
      to "#{mail_to}"
      subject "#{mail_subject}"
      body &lt;&lt;EOS
    #{mail_body}
    EOS
    
    end
    
    m.charset = "UTF-8"
    m.content_transfer_encoding = "8bit"
    m.deliver
    

    테스트 및 실행



    Gemfile 만들기



    Gemfile
    source 'https://rubygems.org'
    
    gem 'mail'
    

    라이브러리 설치



    명령줄에서 실행
    bundle install
    

    명령줄에서 실행하여 동작 확인하기


    ruby mail.rb
    

    cron으로 설정



    나머지는 crontab -e로 두드려 cron을 설정합니다.

    나라고 rbenv 로 Ruby 넣고 있기 때문에 이런 느낌 (홈 디렉토리 이하는 테키토)

    매년 12월 10일에 메일을 보내는 예
    0 0 10 12 * /home/miyamiya/.rbenv/shims/ruby /home/miyamiya/bin/happy_birthday_to_me.rb
    

    고찰


  • 본문을 텍스트로 만들어 두고, 기동시에 적절하게 읽어내도록(듯이) 하면 몇년분은 갈 수 있다
  • 본문을 어느 정도 자동 생성하면 반영구적으로 갈 수 있다
  • ruby-gmail은 gem이 있었던 것 같습니다! 눈치채지 못했다!
  • 좋은 웹페이지 즐겨찾기