

[Action
Mailerとdeviseをつかって登録完了メールを自動送信してみる](https://qiita.com/mi-1109/items/974c03776eba61146aa4)

上記の記事を参考に，自作アプリ内での登録完了メールをカスタマイズしてみたいのですが，新規登録画面にアドレスなど書いて送信した後に以下のエラーを出されてしまいました．正しく動いていれば，画面が遷移して，記入したメールアドレスに本登録してください，的なメールが来るはずです．

**555 5.5.2 Syntax error. xxx - gsmtp**

エラーの場所は以下のコントローラーになってます．

**app/controllers/users/registrations_controller.rb**

[code]

    # frozen_string_literal: true
    
    class Users::RegistrationsController < Devise::RegistrationsController
    
    　#ここから
    
      #qiita-ActionMailer参照
      def create
        #スーパークラス(devise)のcreateアクションを呼ぶ
        super
        #WelcomeMailerクラスのsend_when_signupメソッドを呼び、POSTから受け取ったuserのemailとnameを渡す
        WelcomeMailer.send_when_signup(params[:user][:email],params[:user][:name]).deliver
      end
    
    　#ここまで
    
      # before_action :configure_sign_up_params, only: [:create]
      # before_action :configure_account_update_params, only: [:update]
    
      # GET /resource/sign_up
      # def new
      #   super
      # end
    
      # POST /resource
      # def create
      #   super
      # end
    
      # GET /resource/edit
      # def edit
      #   super
      # end
    
      # PUT /resource
      # def update
      #   super
      # end
    
      # DELETE /resource
      # def destroy
      #   super
      # end
    
      # GET /resource/cancel
      # Forces the session data which is usually expired after sign
      # in to be expired now. This is useful if the user wants to
      # cancel oauth signing in/up in the middle of the process,
      # removing all OAuth session data.
      # def cancel
      #   super
      # end
    
      # protected
    
      # If you have extra params to permit, append them to the sanitizer.
      # def configure_sign_up_params
      #   devise_parameter_sanitizer.permit(:sign_up, keys: [:attribute])
      # end
    
      # If you have extra params to permit, append them to the sanitizer.
      # def configure_account_update_params
      #   devise_parameter_sanitizer.permit(:account_update, keys: [:attribute])
      # end
    
      # The path used after sign up.
      # def after_sign_up_path_for(resource)
      #   super(resource)
      # end
    
      # The path used after sign up for inactive accounts.
      # def after_inactive_sign_up_path_for(resource)
      #   super(resource)
      # end
    end
    
    
[/code]

記事にあるような，Deviseのカラム（name,
email）はすでに追加してあり，githubにあげた際の保守性のために，記事内の”おまけ”の章も設定し，ターミナル上で動作確認済みなのですが，”構文エラー”がなぜ出てしまうのでしょうか？

参考までに記事をもとに追加したファイルを載せておくので，アドバイスをいただけると嬉しいです．

**config/env/development.rb**

[code]

    #追加分or変更分
      config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
      #qiita-ActionMailer--
      #Don't care if the mailer can't send.
      config.action_mailer.raise_delivery_errors = true
      config.action_mailer.delivery_method = :smtp
      config.action_mailer.smtp_settings = {
        port:                 587,
        address:              'smtp.gmail.com',
        domain:               'smtp.gmail.com',
        user_name:            ENV['WELCOME_MAILER_ADDRESS'],
        password:             ENV['WELCOME_MAILER_PASSWORD'],
        authentication:       'login',
        enable_starttls_auto: true
      }
    
    
[/code]


CC BY-SA 4.0
2022-05-05T12:47:58.097
88662
2022-05-05T14:33:04.400
2022-05-05T14:33:04.400
19110
40091
question
ruby-on-rails ruby gmail devise
Deviseの登録完了メールをカスタマイズしてみたいのですが，555 5.5.2 Syntax errorが出て送信できません．


エラーメッセージにあるように、これは gsmtp、つまり Gmail の SMTP サーバーが構文エラーを出しているメッセージです。詳細:
<https://support.google.com/a/answer/3726730?hl=ja>

したがって、メールの本文やヘッダーに問題があります。質問文に記載が無いので詳細は分かりませんが、実際に送ろうとしているメールデータを、view
を確かめたり生成されているデータを確かめたりすることで確認してみてください。

生成されているデータを確かめるには、単に puts してみたり、ActionMailer のメールプレビュー機能  
<https://railsguides.jp/action_mailer_basics.html#%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC>
を使ったりなどの方法があります。


CC BY-SA 4.0
2022-05-05T14:15:12.607
88664
2022-05-05T14:15:12.607
19110
88662
answer


たとえばToやFromのメールアドレスが不正なときに出るようです。  
<https://stackoverflow.com/questions/4321346/555-5-5-2-syntax-error-gmails-
smtp>

SMTPの通信内容を確認するとエラーの詳細が分かると思いますが config.action_mailer.logger
を設定することで何か得られるのではないでしょうか  
<https://railsguides.jp/configuring.html#config-action-mailer-logger>


CC BY-SA 4.0
2022-05-05T14:27:26.997
88665
2022-05-05T14:27:26.997
292
88662
answer