Программирование на языке Ruby
Программирование на языке Ruby читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
str = "Mail: " # String.out = $stdout # Объект IO.msg.all(arr) # Построить массив строчек.msg.all(str) # Конкатенировать с str.msg.all(out) # Вывести на stdout.Наконец, покажем еще, как вернуть только тело сообщения, игнорируя все заголовки.
module Net class POPMail def body # Пропустить байты заголовка self.all[self.header.size..-1] end endendЕсли вы предпочитаете протокол IMAP, а не POP3, обратитесь к разделу 18.2.5
18.2.4. Отправка почты по протоколу SMTP
Это понял бы и пятилетний ребенок. Дайте мне пятилетнего ребенка.
Название «простой протокол электронной почты» (Simple Mail Transfer Protocol — SMTP) не вполне правильно. Если он и «простой», то только по сравнению с более сложными протоколами.
Конечно, библиотека
smtp.rbВ классе
Net::SMTPnewstartnewlocalhostМетод
start• server — доменное имя или IP-адрес SMTP-сервера; по умолчанию это
"localhost"• port — номер порта, по умолчанию 25;
• domain — доменное имя отправителя, по умолчанию
ENV["HOSTNAME"]• account — имя пользователя, по умолчанию
nil• password — пароль, по умолчанию
nil• authtype — тип авторизации, по умолчанию
:cram_md5Обычно большую часть этих параметров можно не задавать.
Если метод
startSMTPУ объекта
SMTPsendmail• source — строка или массив (или любой объект, у которого есть итератор
each• sender — строка, записываемая в поле «from» сообщения;
• recipients — строка или массив строк, описывающие одного или нескольких получателей.
Вот пример отправки сообщения с помощью методов класса:
require 'net/smtp'msg = <<EOFSubject: Разное... пришла пораПодумать о делах:О башмаках, о сургуче,Капусте, королях.И почему, как суп в котле,Кипит вода в морях.EOFNet::SMTP.start("smtp-server.fake.com") do |smtp| smtp.sendmail msg, '[email protected]', '[email protected]'endПоскольку в начале строки находится слово
Subject:РазноеИмеется также метод экземпляра
startnewstartrequire 'net/smtp'msg = <<EOFSubject: Ясно и логично"С другой стороны, - добавил Тарарам, -если все так и было, то все именно так и было.Если же все было бы так, то все не могло бы бытьне так. Но поскольку все было не совсем так, всебыло совершенно не так. Ясно и логично!"EOFsmtp = Net::SMTP.new("smtp-server.fake.com")smtp.startsmtp.sendmail msg, '[email protected]', '[email protected]'Если вы еще не запутались, добавим, что метод экземпляра может принимать ещё и блок:
require 'net/smtp'msg = <<EOFSubject: Моби ДикЗовите меня Измаил.EOFaddressees = ['[email protected]', '[email protected]']smtp = Net::SMTP.new("smtp-server.fake.com")smtp.start do |obj| obj.sendmail msg, '[email protected]', addresseesendКак видно из примера, объект, переданный в блок (
objsmtpСуществует еще метод экземпляра со странным названием
readysendmailadapterNet::NetPrivate::WriteAdapterwriteappend
