Skip to main content

Send mail via SMTP using PERL

Send Mail to gmail account with perl

Installation of Send::SMTP::Gmail: 

In order to send mail via Gmail, you need to have TLS verification. Having TLS and Installation of perl package Send::SMTP::Gmail is covered in brief. 

For Ubuntu: 

sudo apt-get install openssl libnet-ssleay-perl  libcrypt-ssleay-perl

For RedHat/Fedora/CentOs:

yum  install  perl-IO-Socket-SSL  perl-Digest-HMAC  perl-TermReadKey  perl-MIME-Lite  perl-File-LibMagic  perl-IO-Socket-INET6 perl-Net-SSLeay perl-Crypt-SSLeay perl-Email-Send

Usages: 

Following method is used to send mail and attachment in it. Please read it and post your comments.


sub sendMail
{
        use Email::Send::SMTP::Gmail;
        my $to=shift;
        my $cc=shift;
        my $subject=shift;
        my $body=shift;
        
        my $mail=Email::Send::SMTP::Gmail->new( -smtp=>'smtp.gmail.com',
                                                -login=>'yourUser@eko.co.in',
                                                -pass=>'passwd',
                                                -port=>587,
                                                -debug=>1);
        
         $mail->send(-to=>"$to",
                        -cc=>"$cc",
                            -subject=>$subject,
                            -verbose=>'1',
                            -body=>$body
                           );
         #-attachments=>'full_path_to_file'
        $mail->bye;


}

Comments

Popular posts

A few useful sql functions

Start mysql in Ubuntu without having root privilege:- If you want to use mysql in Ubutu you can use following command which will use a root level privilege   $ mysql -u root -p Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 147 Server version: 5.1.49-1ubuntu8.1-log (Ubuntu) When it demands to enter the password fill it with 'root' and hopefully you'll get logged in .   Last_insert_id():- (with no argument) returns the first automatically generated value that was set for an AUTO_INCREMENT column by the most recently executed INSERT statement to affect such a column. For example, after inserting a row that generates an AUTO_INCREMENT value, you can get the value like this:   mysql> SELECT LAST_INSERT_ID(); Database():- Database() method returns the current selected database and you can use it in your communication and your queries. The syntax is :   mysql>select Database (); User():- It a...

Nodejs SSA learnings

nodejs-akamai-page.MD Overview In almost every blog when people talk about deploying something on K8S they use node mostly because setting up http server is not that easy. I wish that it could be this easy for our case, (which it wasn’t). Manly because the way we wanted the application to work, plans for SEO and multiple data pipelines for business including Amplitude for client and Pubsub for application and business metrics. Making all these calls from nodejs was easy for developers just 1 more promise. Everything went smoothly as long as functional testing was required. We were ready to launch and somebody from SRE/Devops team asked: “Have you done load testing?” . Everything was superb up to this point where load testing results are required to make service live. Load Testing We started to put load to our services using apache benchmark. Very soon we realised our application is not scaling as much as we expected. To our surprise application was able to handle only 3 requ...

Change password of mysql users

Change MySQL user's password in bulk Sometimes we need to change the password of mysql users at bulk. Lets say your company has fired a group of peoples or dissolved a project. This requirement can be supplied as : We can achieve the same by changing the password field in mysql.user table. Password() is a predifined method in mysql which generates encrypted value of a certain string. host update mysql.user set password = PASSWORD("passwd") where host IN (<Comma separated list of HostName/IP>); user update mysql.user set password = PASSWORD("passwd") where user IN (<Comma separated list of ‘user’@’host’>);

Read a File line by line in Shell

I've used a few techniques for this kind of reading but gets failed until I've read this fine blog . http://www.bashguru.com/2010/05/how-to-read-file-line-by-line-in-shell.html this helps a lot and i have developed a trick for me. Refer to the following example to examine the script : #!/bin/bash #SCRIPT: method2.sh #PURPOSE: Process a file line by line with redirected while-read loop . FILENAME=$1 count=0 while read LINE do let count++ echo "$count $LINE" done < $FILENAME echo -e "\nTotal $count Lines read" I have passed the file in the end of the loop so i didn't need  to use pipe that is why i process the file in fastest manner and gives  the required output in a quick manner. However i can use one more thing the File Descriptors. The File Descriptors are similar to the normal file pointers however in  more analogue way.If you have used C then you will have familier with the  the default file openers in C "st...

Helm generic springboot templates

With the dramatically increasing demand for container orchestration specifically Kubernetes, demand to template K8S manifests(Json/Yaml) also came to light. To handle increasing manifests, new CRDs(Custom resource definition), etc… it became obvious that we need a package manager somewhat like yum, apt, etc… However, the nature of Kubernetes manifest is very different than what one used to have with Yum and Apt. These manifests required a lot of templates which is now supported by Helm, a tool written in GoLang with custom helm functions and pipelines. Neutral background on templating Templating has been a driver for configuration management for a long time. While it may seem trivial for users coming from Ansible, Chef, Puppet, Salt, etc…, it is not. Once one moves to Kubernetes, the very first realization is hard declarative approach that Kubernetes follows. It is difficult to make generic templating with declarative form since each application may have some unique feature and r...

Enter your email address: