Отправить письмо с вложением в Ruby - PullRequest
13 голосов
/ 07 июля 2010

Мне нужно отправить электронное письмо с вложением через Ruby.

Был поиск, но не нашел ни одного простого сценария для этого.

Самое близкое, что я нашел, - это ActionMailer, но для его запуска требуется множество других скриптов. (ПРИМЕЧАНИЕ: я не использую Ruby on Rails)

Ответы [ 3 ]

17 голосов
/ 07 июля 2010

Вы проверили Почта ?Именно на этом построен новый API ActionMailer в Rails 3.

«Почта - это интернет-библиотека для Ruby, предназначенная для простой, рубиновой обработки запросов на генерацию, анализ и отправку писем».

Вот краткий пример из документов:

require 'mail'

@mail = Mail.new
file_data = File.read('path/to/myfile.pdf')
@mail.attachments['myfile.pdf'] = { :mime_type => 'application/x-pdf',
                                    :content => file_data }

Обновление : Или еще проще:

@mail = Mail.new
@mail.add_file("/path/to/file.jpg")
1 голос
/ 31 августа 2017

Отправка электронной почты или электронной почты с любым типом вложений стала более простой с установкой "mail" gem.

Шаг: 1 Установить "mail" gem

Шаг: 2 В файле ruby ​​придерживайтесь приведенного ниже синтаксиса:

require 'mail'
def mailsender
      Mail.defaults do
        delivery_method :smtp,{ address: "<smtp_address>",openssl_verify_mode: "none" }
      end

      Mail.deliver do
        from     'from_mail_id'
        to       'to_mail_id'
        subject  'subject_to_be_sent'
        # body     File.read('body.txt')
        body     'body.txt'
        add_file '<file_location>/Word Doc.docx'
        add_file '<file_location>/Word Doc.doc'
      end
end

Step: 3 сейчас Просто вызовите метод в определении шага.

1 голос
/ 22 марта 2015

Полная документация: здесь

require 'mail'

Mail.deliver do
  from      "bob@example.com"
  to        "alice@example.com"
  subject   "Email with attachment"
  body      "Hello world"
  add_file  "/path/to/file"
end
...