이메일을 보내는 데 사용할 앱을 만들고 있습니다. 이메일을 생성하는 데 사용될 데이터를 수신하기 때문에 일반 메일러와 템플릿을 사용할 필요가 없습니다. 그러나 SMTP
과 직접 상호 작용하는 대신 ActionMailer
을 사용하면 몇 가지 이점이 있다고 가정합니다. ActionMailer::Base
의 새 인스턴스를 인스턴스화하는 동안 문제가 발생했습니다. ActionMailer::Base
을 확장하는 새 클래스를 정의하지 않고도 ActionMailer
을 단독으로 사용하려면 어떻게해야합니까?레일 : ActionMailer를 단독으로 사용하는 방법?
답변
난 당신의 우승자는 포니라는 루비 보석이라고 생각합니다. 이것은 예컨대, 당신은 매우 간단하게 메일을 보낼 수 있습니다 :
Mail.deliver do
from '[email protected]'
to '[email protected]'
subject 'Here is the image you wanted'
body File.read('body.txt')
add_file :filename => 'somefile.png', :content => File.read('/somefile.png')
end
그것은 ActionMailer가하는 모두 같은 방법으로 전달을 지원합니다.
이것은 가장 기본적인 해결책입니다. smtp 설정과 하드 코딩 된 값을 변수 등으로 변경해야합니다. 이렇게하면보기를 사용할 필요가 없습니다. 그래도 ERB를 사용하고 싶다면 Railscast 206을 확인하시기 바랍니다.
그냥이 코드를 변경 "test_email.rb"와 같은 파일에 넣어ruby test_email.rb
require 'action_mailer'
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "testuser123",
:password => "secret",
:authentication => "plain",
:enable_starttls_auto => true
}
class TestMailer < ActionMailer::Base
default :from => "[email protected]"
# def somemethod()
# mail(:to => "John Doe <[email protected]>", :subject => "TEST", :body => "HERE WE GO!!!")
# end
def mail(args)
super
end
end
# TestMailer.somemethod().deliver
TestMailer.mail(:to => "John Doe <[email protected]>", :subject => "TEST", :body => "HERE WE GO!!!")
이것은 내가 이미하고있는 일의 유형입니다. 일반적인 "준비"방법을 사용하는 일반 메일러가 있습니다. 나는'mail()'을 직접 사용하는 것과 같은 일을하고 싶습니다. – Andrew
그래 코드를 좀 더 일반적인 것으로 변경했습니다. 이것은 당신이 원하는 것입니다, 그러나 당신이 그것을 제안한 방식이 아닙니다. 나는 약간의 오버 헤드가 있지만 그것은 당신의 명세를 따른다는 것을 알고있다. 당신은 모든 것을 오버라이드 할 수 있고, 아무런 뷰도 없다. mail()에서 당신 자신을 추가 할 수 있기 때문에 디폴트는 무의미하다. – ayckoster
아와 전화, 나는 지금보다 나은 이해 생각한다. 기본적으로 php의 mail()과 비슷한 간단한 하나의 라이너를 찾고 있습니다.
그렇다면 ActionMailer는 실제로이 작업에 적합한 도구가 아니기 때문에 당신에게 의미가 없습니다. https://github.com/benprew/pony
예 : ActionMailer의 기본 기능은 mail gem에 의해 제공됩니다
Pony.mail(:to => '[email protected]', :from => '[email protected]', :subject => 'hi', :body => 'Hello there.')
레일즈 밖에서 ActionMailer를 사용하면 약간의 번거롭고 사용하기가 번거롭다. 또한 Ruby (레일이 아닌) 프로젝트에서 Pony를 사용하고 있습니다. – dimitarvp
- 1. Magento : Mage :: getResourceModel()을 단독으로 사용하는 경우
- 2. 개발에서 ActionMailer를 비활성화하는 방법은 무엇입니까?
- 3. 레일 mail_form을 사용하는 방법?
- 4. ActionMailer를 통한 ArgumentError
- 5. 'haml'gem을 단독으로 사용하거나 'haml-rails'로 사용합니다.
- 6. DbDataReader가 단독으로 종료됩니까?
- 7. 체크 회문은 단독으로 목록을
- 8. 레일 Seeds.rb에서 FactoryGirl을 사용하는 방법?
- 9. 레일 - reload 메서드를 사용하는 방법?
- 10. Ruby 1.9.3-p125를 사용하여 ActionMailer를 사용하는 세그먼트 오류
- 11. 쿼리 개체가 쿼리를 단독으로 실행합니까?
- 12. 응용 프로그램을 단독으로 다시 시작하십시오.
- 13. ActionMailer를 회사 Gmail 계정과 함께 사용
- 14. 레일 생성기에서 Thor :: Shell :: Basic을 사용하는 방법?
- 15. 단일 오이 시나리오에 레일 캐시를 사용하는 방법
- 16. 레일 티에서 갈퀴 대신에 thor를 사용하는 방법
- 17. 레일 엔진 내부에 보석을 설치하고 사용하는 방법
- 18. 레일 : lib의 별도 클래스에서 도우미를 사용하는 방법
- 19. 레일 서버에 얇은 cli 옵션을 사용하는 방법
- 20. 레일 : 임의의 인덱스에서 find 메소드를 사용하는 방법
- 21. 로컬 서버에서 ActionMailer를 사용하면 Timeout :: Error가 발생합니다.
- 22. API와 JSON을 사용하는 레일
- 23. 링크드리스트를 단독으로 되 돌리시겠습니까? // 괴짜 : 다른 사이트에
- 24. iText를 단독으로 사용하거나 BIRT로 모두 나가기
- 25. 그래프가 단독으로 연결되어 있는지 여부를 확인하십시오.
- 26. 레일 타사 메일러를 사용하는 TDD?
- 27. 레일 가이드가 사용하는 레이아웃은 무엇입니까?
- 28. 하나의 형식을 사용하는 STI 레일
- 29. 레일 제너레이터 컨트롤러를 사용하는 경우
- 30. CAS 인증을 사용하는 레일 애플리케이션
질문은 약간 혼란 스럽습니다. 이메일을 보내기위한 RESTful API를 만들고 있다고 가정 해 보겠습니다. RESTful API를 처리하는 레일 앱도 이메일 전송 책임이 있습니까? – patrickmcgraw
네 말이 맞아. 미안. 나는 진짜 질문과 아무 관련이 없기 때문에 질문을 업데이트하고 REST에 관한 부분을 꺼냈다. – Andrew
ActionMailer :: Base를 확장하고 싶지 않은 이유는 무엇입니까? 이것이 작동하는 방법입니다. – tybro0103