質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

512閲覧

Railsで複数のMailインスタンスを生成するにはどうしたらよいのでしょうか?

d04062

総合スコア111

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/10/27 02:25

発生していること

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

charsetメソッドの定義がいないようで、この一行を外してみたらどうですか?

mail.charset = 'utf-8'

mail_smtpメソッドはどこに呼ばれてるかは貼ってるコードだけでは判定できません。

メール送信はこちら参考できると思います。
https://sendgrid.kke.co.jp/blog/?p=1140

投稿2021/10/27 10:15

heroyct

総合スコア434

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問