Quantcast
Channel: Active questions tagged ruby - Stack Overflow
Viewing all articles
Browse latest Browse all 4623

URLs in email being modified/mangled somehow

$
0
0

I'm sending (plain text) emails containing urls to a web site. They look like:

https://www.example.com/account/confirm/?place_id=ChIJA5Vy7Qfp2UcRpbHr9bNg4Tw

(The place_id parameter is a Place ID from the Google Maps API)


But my server logs show entries like

GET /account/confirm/?place_id=DuVWjMw28Eld43dEZhEcXEDcJfd

This only happens sometimes, I have plenty of entries that look as expected:

GET /account/confirm/?place_id=ChIJA5Vy7Qfp2UcRpbHr9bNg4Tw

And if I send test emails to myself, I get the correct URLs


Does anyone know what might be happening: how are these parameters getting mangled?. I'm using the following ruby code, running on AWS Lambda. The code connects via SMTP to a Gmail account:

require 'json'require 'mail'require 'securerandom'def lambda_handler(event:, context:)  eventBody = JSON.parse(event["body"])  smtp = eventBody['smtp']  Mail.defaults do    delivery_method :smtp, {        address: smtp['address'],        port: smtp['port'],        user_name: smtp['username'],        password: smtp['password'],        authentication: smtp['authentication'],        enable_starttls_auto: smtp['enable_starttls_auto']      }  end  mailConfig = eventBody['mail']  mail = Mail.new do    message_id      "<#{SecureRandom.uuid.upcase}@#{mailConfig['from']['address'].split('@').last}>"    to              mailConfig['to']    from            "#{mailConfig['from']['name']} <#{mailConfig['from']['address']}>"    subject         mailConfig['subject']    unless mailConfig['body'].nil?      body          mailConfig['body']    end  end  unless mailConfig['body_text'].nil?    mail.text_part = Mail::Part.new do      body          mailConfig['body_text']    end  end  unless mailConfig['body_html'].nil?    mail.html_part = Mail::Part.new do      content_type  'text/html; charset=UTF-8'      body          mailConfig['body_html']    end  end  unless mailConfig['headers'].nil?    mailConfig['headers'].each do |name, value|      mail.header[name] = value    end  end  {    statusCode: 201,    body: JSON.generate({      # event: event,      # body: eventBody,      # context: context,      mail: mail.to_s    })}

Viewing all articles
Browse latest Browse all 4623


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>