発生していること
SendGrid APIでのメール送信と、
SMTPのメール送信を共存しようとすると、
undefined method `charset=' for #SendGrid::Mail:0x000000000563b8e8
等のエラーが発生し、
SMTP側のMaiインスタンスがSendGrid側と共存してエラーが発生してしまいます。
Railsで複数のMailインスタンスを生成するにはどうしたらよいのでしょうか?
ruby
1include SendGrid 2 def mail_sendgrid(to,subject,content) 3 require 'sendgrid-ruby' 4 5 from = Email.new(email: ENV['SENDGRID_FROM']) 6 to = Email.new(email: to) 7 subject = 'テスト' 8 content = Content.new(type: 'text/plain', value: content) 9 mail = Mail.new(from, subject, to, content) 10 11 sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY']) 12 response = sg.client.mail._('send').post(request_body: mail.to_json) 13 puts response.status_code 14 puts response.body 15 puts response.headers 16 end 17 18 19def mail_smtp(to,manuscript) 20 options = { 21 :address => '', 22 :user_name => '', 23 :password => '', 24 :port => 587, 25 :domain => '', 26 :authentication => :plain, 27 :enable_starttls_auto => true } 28 29 subject, *, body = manuscript.partition("\n") 30 31 mail = Mail.new do 32 from '' 33 to to 34 subject subject 35 body body 36 end 37 38 mail.charset = 'utf-8' 39 mail.delivery_method(:smtp, options) 40 mail.deliver 41end 42
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。