Skip to main content

Ruby : Send email with excel attachment using net/smpt

require 'net/smtp'
require 'open-uri'


def send_email_with_attachment(subject, body, to_email)
 user = 'mailsender@gmail.com'
 pwd = 'Mail123Pa55word'
 to = to_email
 from = 'noreply@baliw.com'
 subject = "#{subject}"

filename = "Excel_Attachment.xlsx"
filename = "xlsTemplate.xls"
filename = "xlsxTemplate.xlsx"

# Read a file and encode it into base64 format
filecontent = File.binread(filename)
encodedcontent = [filecontent].pack("m")   # base64

marker = "AUNIQUEMARKER"

body = <<EOF
This is a test email to send an attachement using net/smpt.
EOF

# Define the main headers.
part1 = <<EOF
From: No Reply <#{from}>
To: A Test User <#{to}>
Subject: Sending Excel Attachement test123
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary = #{marker}
--#{marker}
EOF

# Define the message action
part2 = <<EOF
Content-Type: text/plain
Content-Transfer-Encoding:8bit

#{body}
--#{marker}
EOF

# Define the attachment section
part3 = <<EOF
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;  name = \"#{filename}\"
Content-Transfer-Encoding:base64
Content-Disposition: attachment; filename="#{File.basename filename}"

#{encodedcontent}
--#{marker}--
EOF

message = part1 + part2 + part3
puts message
 
 smtp = Net::SMTP.new 'smtp.gmail.com', 587
 smtp.enable_starttls
 smtp.start('gmail.com', user, pwd, :login)
 smtp.send_message(message, from, to)
 smtp.finish
end

#send_email_with_attachment("test 123 subject w/ excel attachment", "test 123 body with excel", "baliw@gmail.com")

Comments

Popular posts from this blog

Ubuntu 16.04 LT - Installing Chromium browser

> Type these commands about this PPA : $ sudo add-apt-repository ppa:canonical-chromium-builds/stage $ sudo apt-get update $ sudo apt-get install chromium-browser > Terminal: mccrazy@Lenovo-N22:~$ sudo add-apt-repository ppa:canonical-chromium-builds/stage [sudo] password for mccrazy:  Testing site just before upload to Ubuntu main. Things here are either broken and not ready to use, or landing in the distro anyway very soon. You shouldn't use this.  More info: https://launchpad.net/~canonical-chromium-builds/+archive/ubuntu/stage Press [ENTER] to continue or ctrl-c to cancel adding it gpg: keyring `/tmp/tmp6cfppy_r/secring.gpg' created gpg: keyring `/tmp/tmp6cfppy_r/pubring.gpg' created gpg: requesting key 5B393194 from hkp server keyserver.ubuntu.com gpg: /tmp/tmp6cfppy_r/trustdb.gpg: trustdb created gpg: key 5B393194: public key "Launchpad PPA for Canonical Chromium Build Team" imported gpg: Total number processed: 1 gpg:               imported: 1  (RSA

Moodlerooms Webservice - How to insert a user using function core_user_create_users

https://our-sandbox.mrooms.net/webservice/rest/server.php?wstoken=OUT_TOKEN_HERE&wsfunction=core_user_create_users&moodlewsrestformat=xml&users [0][username]= biboyatienza@gmail.com &users[0][password]=00.00.0000&users[0][firstname]=biboy&users[0][lastname]=atienza&users[0][email]= biboyatienza@gmail.com &users[0][city]=Manila&users[0][country]=Philippines &users[0][customfields][0][type]= customer &users[0][customfields][0][value]=Customer1 &users[0][customfields][1][type]= customeremail &users[0][customfields][1][value]= customer@email.com &users[0][customfields][2][type]= customerphone &users[0][customfields][2][value]=+6325217788