Я создаю файл 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, но ничего не происходит.
Что я надеваюне понимаю, что я делаю неправильно, требуя драгоценные камни для своего файла. Как я могу загрузить драгоценный камень онлайн и использовать его?