루비로 에버노트에 노트북 보내기

9162 단어 EvernoteRuby
루비에서evernote로 임의의 데이터를 보냅니다.
정기적인 보고 등을 위해 조사했기 때문에 고도의 처리를 고려하지 않았다.
따라서 데이터 전송은 Evernote API가 아닙니다.
gmail에서evernote로 보내는 메일 주소를 결정합니다.

코드


tlsmail과 메일을 사용했기 때문에 설치해 주세요.
메일의 첨부 파일을 사용하여evernote에 그림을 성공적으로 넣었습니다.
evernote_send.rb
require 'yaml'

# これをやらないと警告が沢山出る
# http://stackoverflow.com/questions/8783400/warning-already-initialized-constant-after-installing-tlsmail-gem
require 'net/smtp'
Net.instance_eval {remove_const :SMTPSession} if defined?(Net::SMTPSession)

require 'net/pop'
Net::POP.instance_eval {remove_const :Revision} if defined?(Net::POP::Revision)
Net.instance_eval {remove_const :POP} if defined?(Net::POP)
Net.instance_eval {remove_const :POPSession} if defined?(Net::POPSession)
Net.instance_eval {remove_const :POP3Session} if defined?(Net::POP3Session)
Net.instance_eval {remove_const :APOPSession} if defined?(Net::APOPSession)

require 'tlsmail'
require 'mail'

class SendEvernote
  def initialize(evernote_mail, gmail_account, gmail_pass)
    @smtpserver = Net::SMTP.new('smtp.gmail.com',587)
    @smtpserver.enable_tls(OpenSSL::SSL::VERIFY_NONE)

    @evernote_mail = evernote_mail

    @gmail_account = gmail_account
    @gmail_pass = gmail_pass

    # まとめて送るのでそれ用のバッファ
    @buffer = []
  end

  def addNote(subject, body, files)
    mail = Mail.new

    mail[:from] = @gmail_account
    mail[:to] = @evernote_mail
    mail.subject = subject
    mail.body = body
    files.each do |path|
      mail.add_file(path)
    end

    @buffer << mail
  end

  def send
    @smtpserver.start('gmail.com',@gmail_account, @gmail_pass, :login) do |smtp|
      @buffer.each do |mail|
        smtp.send_message(mail.encoded, mail.from, mail.to)
      end
      @buffer.clear
    end
  end
end

config = YAML.load_file("evernote.yml")
send_evernote = SendEvernote.new(config["evernote_mail"], config["gmail_account"], config["gmail_pass"])

send_evernote.addNote("test", "this is test", ["logo-new.png", "logo.png"])
send_evernote.send

결실


좋은 웹페이지 즐겨찾기