Использование рубиновых самоцветов онлайн - PullRequest
0 голосов
/ 21 мая 2018

Я создаю файл Ruby, который позволяет пользователю отправлять мне электронное письмо непосредственно через мой веб-сайт.Я использовал gem tlsmail, и когда я пробую свой файл на локальном компьютере, все работает отлично, я получаю электронные письма, и вся информация находится там, где они должны быть (например, тема, сообщение и т. Д.).

Это мой код:

#!/usr/bin/ruby
puts "Content-type: text/html\n\n"
require "cgi"
require "tlsmail"

cgi_request = CGI::new("html5")

contact_name = cgi_request["contact_name"]
contact_email = cgi_request["contact_email"]
contact_subject = cgi_request["subject"]
contact_message = cgi_request["contact_message"]
puts contact_name
puts contact_email
puts contact_subject
puts contact_message

msgstr = <<END_OF_MESSAGE
From: Mattia Bombelli <mattiabombelli.noreply@gmail.com>
To: A Private User <another-email@gmail.com>
Subject: Testing email

Just testing the file
END_OF_MESSAGE


Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start("smtp.gmail.com", 587, "gmail.com", "mattiabombelli.noreply@gmail.com", "password", :plain) do |smtp|
  smtp.send_message msgstr, "mattiabombelli.noreply@gmail.com", "another-email@gmail.com"

end

puts "Email sent!"

(Единственное изменение, которое я сделал, это в шебанге, в местном я использую #!/usr/local/bin/ruby)

Проблемы начинаютсякогда я пытаюсь разместить этот файл в Интернете на моем веб-хостинге.Если я загружаю этот файл в файловый менеджер моего веб-сайта, он не загружает гем tlsmail, и все полученные из html формы, которые я получаю, исчезают, и больше ничего не происходит.Права доступа правильные, и файл находится в нужной папке, потому что, если я избавлюсь от require "tlsmail", я смогу увидеть вывод всех вводимых html-данных с другой страницы моего сайта.

Если явместо этого попробуйте использовать net/smtp Я не получаю никакого электронного письма (также последняя строка моего кода, puts "Email sent!" не появляется на странице, поэтому я предполагаю, что что-то идет не так, когда я начинаю использовать Net::SMTP. Я попытался выполнить следующее этот ответ но у меня та же проблема tlsmail с mailfactory. Я также попробовал другой совершенно другой способ, с mail gem, но ничего не происходит.

Что я надеваюне понимаю, что я делаю неправильно, требуя драгоценные камни для своего файла. Как я могу загрузить драгоценный камень онлайн и использовать его?

1 Ответ

0 голосов
/ 21 мая 2018

Драгоценные камни загружаются из файловой системы хоста, и если драгоценный камень отсутствует, то require -ing его файлы выдадут LoadError, что должно быть видно в журналах.

Это обсуждение предоставляет способ перечисления драгоценных камней, доступных на сервере, если у вас нет доступа к оболочке.Возможно, вам следует поговорить с администратором вашего хостинга, если они могут запустить gem install для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...