Поскольку ни один из ответов не говорит о целом сообщении с чистым Ruby, вот оно.
Net::SMTP.start("localhost") do |smtp|
smtp.open_message_stream opts[:sender_address], opts[:receiver_address] do |f|
f.puts "Content-type: text/plain; charset=UTF-8"
f.puts from
f.puts to
f.puts subject
f.puts message
end
end
Здесь вы открываете соединение с localhost. Использование внешнего SMTP-сервера также возможно, см. Документацию net / smtp.
Первая строка устанавливает набор символов, используемый в сообщении. Остальные строки являются переменными, определенными отдельно:
from - это адрес в форме From: Name here <address@here.fi>
. Если имя не требуется, можно указать только адрес, например From: address@here.fi
.
использует тот же синтаксис, за исключением From:
изменено на To:
.
тема находится в форме предмета: предмет здесь. Для UTF-8 он должен быть в кодировке Base64, чтобы правильно отображаться для клиентов.
subject = "Subject: =?UTF-8?B?" + Base64.strict_encode64(subject) + "?="
Сообщение - это текстовое сообщение в кодировке UTF-8 без префикса. net / smtp позаботится о формировании правильной почты.