2014-11-26 2 views
1

Я пытаюсь отправить электронное письмо из командной строки с кодом Ruby на сервере Sinatra. В командной строке, я успешно использовал:Отправить письмо от командной строки с Ruby

smtpfree_mail.pl -from [email protected] -to [email protected] -subject "test msg" -body "message body" 

так я мог использовать:

%x(smtpfree_mail.pl -from [email protected] -to [email protected] -subject "test msg" -body "message body") 

как предложено this answer? Я хочу позже ввести несколько переменных в тело электронной почты.

+0

Выполнение произвольных команд оболочки с пользовательского ввода рожон. Будьте предельно осторожны при этом. – tadman

ответ

1

Можете ли вы запустить другие программы из Ruby? Да, ты можешь. Как вы видели из вопроса, с которым вы связались.

Не имея представления, что делает smptfree_mail.pl, возможно, вам не удастся позже ввести несколько переменных в тело письма. Предполагая, что он отправляет эту электронную почту, я бы предположил, что изменение содержимого тела электронной почты будет сомнительным, поскольку было бы слишком поздно, следующий почтовый сервер имел бы это, и это было бы из ваших рук ,

Однако вы могли бы изменить тело сообщения раньше, а не позже и легко, так как у вас есть код шаблона в вопросе, который задает этап.

2

Почему вы не используете почтовые отправители, такие как mail или pony? Вы можете сделать это изначально только с вашего кода приложения Sinatra. Я не предлагал ActionMailer, так как он огромный, эти драгоценные камни выше очень маленькие и удобные.

1

вы можете использовать Net :: SMTP более безопасно и можете передавать переменные, пожалуйста, проверьте this в rubydocs.

рабочий пример/учебник можно найти here

Смежные вопросы