EC2가 구축한 Rails 애플리케이션의 메일을 SES에서 Zoho로 전송하는 이야기
6911 단어 ActionMailerzohoAWSRails
AWS 기능으로만 메시지 수신
이것은 AWS의 EC2 실례를 빌려 Rails 응용을 구축할 때의 일이다.소형으로 시작했기 때문에AWS 무료 사용 프레임워크 털이 조금 난 정도의 비용 계획을 구상해 네트워크 토폴로지·내부 건축을 구축했다.
그중 현재 토론 중인 것은 메일이다.당초 가입 신청 때와 비밀번호가 복원될 때 날아오르는 메일을 구상했기 때문에 보낼 수만 있다면 일단 OK하고 SES를 통해 메일을 보냈다.
그러나 앱 개발 진행 중에도 메일을 받고 싶어 일단 AWS 기능으로 어떻게 메일을 주고받는지 조사한다.
SES 만 메일을 받을 수 없음
규칙 설정 수신의 일부 조사 결과 S3에 데이터를 보내는 규칙집을 제작해 일단 우편물을 받은 상태였다.
하지만 선더버드 같은 MUA를 통해 보려면 어떻게든 MTA가 필요하다.
AWS에서는 Lambda라는 실행 가능한 스크립트 서비스가 있는데, 이 서비스를 이용해 다른 지역의 MTA로 전송하거나 자신이 운영하는 메일 서버에 메일을 보내고 MUA가 그곳을 방문하는 방법이 있다.
또 AWS가 제공하는 MTA에 접근할 수 있는 MUA 서비스AWS WorkMail도 있다.
그러나 어느 것이든 프레임워크를 무료로 이용하는 범위를 넘어섰기 때문이다(전자는 Rails에서 하나의 실례를 사용했기 때문에 메일 서버에 사용할 실례를 하나 더 만들어야 한다.Gmail 등 다른 영역의 메일 서버로 전송하려면 Lambda도 무료 범위이지만 설정이 복잡할 수 있다(´63;).후자의 WorkMail은 매달 사용자가 4달러이고 비용이 약간 높다. 다른 이용할 수 있는 클라우드 서비스가 있는지 조사할 때 [Zoho Mail]은 무료 방안으로 대응할 수 있을 것 같아 이를 채택하기로 했다.
메일과 DNS의 관계로 같은 영역에서 다른 서비스를 사용할 수 없기 때문이다(예를 들어 발송은 SES에서 하고 수신은 GSuite에서 하는 등)는 Zoho Mail을 사용하여 메일을 발송하기로 결정했다.
Zoho 메일에 계정 등록
일단 계좌부터 만들자.
기본적으로 등록할 때의 절차와 같은 방식으로 설정한다.(자세한 내용은 참고문헌 참조)
또 중간에 건너뛰는 경우제어판도 설정할 수 있다.
TXT 레코드로 등록하면 향후 SPF 레코드의 기술에서 까다로워지기 때문에 CNAME 레코드 등록을 통해 도메인 인증이 성공했습니다.
Zoho는 다음 메일 서버를 배송 주소로 제공합니다.
10 mx.zoho.com.
20 mx2.zoho.com.
50 mx3.zoho.com.
왼쪽의 숫자는 우선도를 나타낸다.메일은 이 값이 작은 서버에 우선적으로 발송됩니다.https://mailadmin.zoho.com/cpanel/index.do#spf의 레코드를 Route 53에 등록합니다.
이번에 상기 설정과 EIP가 부여된 웹 서버에서 발송을 허용하고자 합니다
ip4
의 값도 함께 지불되었습니다. (IPv6를 사용하지 않으면 사용할 수 없습니다.)"v=spf1 include:zoho.com ip4:**.**.**.** -all"
대조를 위해 권위 있는 DNS 서버에 공개 키를 등록함으로써 수신자에서 전자 서명을 대조할 수 있다.
https://mailadmin.zoho.com/cpanel/index.do#dkimselector
Zoho가 키 쌍을 만드는 기능도 있으니 이 내용을 Route 53에 로그인하십시오.
이상, 우편물 수발을 진행하는 설정은 대체로 완료되었습니다.
config/environments/production.편집
마지막으로 Rails 애플리케이션의 설정을 수정합니다.
- config.action_mailer.delivery_method = :ses
+ config.action_mailer.smtp_settings = {
+ :address => "smtp.zoho.com",
+ :port => 465,
+ :user_name => '*****@*****',
+ :password => '*****',
+ :authentication => :login,
+ :ssl => true,
+ :tls => true,
+ :enable_starttls_auto => true
+ }
Gemfile에서 aws-ses 제거
나중에 남을 수도 있지만 당분간 사용하지 않을 것을 고려하여 Gemfile에서 삭제합니다.
% bundle exec gem uninstall aws-ses
Successfully uninstalled aws-ses-0.6.0
% bundle install --path=vendor/bundle
총결산
이에 따라 자오메일의 메일 송수신을 설정했다.사실 SPF랑 DKIM.일본어를 열심히 공부해야 하지만 속도와 예산의 균형으로 생각해야 한다
대략적인 절차 방법입니다.
그나저나 저는 Zoho로 전용 메일 계정을 만들고 싶은데 무료 계획은 설정할 수 없을 것 같아요.
참고 문헌
https://www.zoho.com/mail/help/adminconsole/domain-verification.html
https://sendgrid.kke.co.jp/blog/?p=2149
http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/dkim/
https://mechalog.com/zohomail1
Reference
이 문제에 관하여(EC2가 구축한 Rails 애플리케이션의 메일을 SES에서 Zoho로 전송하는 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/himrock922/items/3083e05e60d01b363482텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)