- to send mail outside of your company/organization
- to open any mail client like Gmail, yahoo or Hotmail using browser
But you wish to send mail to your outside friend. Either you will use some proxy settings or will request administrator to allow sending or receiving any mail from outside. What if we can do it using an in-built command or through script?
Yes it is possible and it’s much more easy if you are using Linux rather than Windows (I know even now most of us are using Windows to read this article 😉 ).
This code will work only at Linux variants. If you want to use sendmail in Windows and Linux also with command line option instead of writing a Perl script, you need to download sendEmail readymade script written in Perl by Brandon Zehm .
- For Linux users, just untar it and run as you run other Perl script, provided your Perl interpreter is at /usr/bin/perl else change the path at script accordingly
- For Windows users, extract the code and run it at command line. Make sure, you have installed Perl interpreter.
Let’s see the explanation using codes:
#!/usr/bin/perl ################################################################################# # Date: July, 2012 # Description: This script will use inbuilt command "sendmail" with -t option mainly. # You can send an email to anyone from any valid email id, even if it’s not you. # You can use it to prank your friends too or to do some serious stuffs. ################################################################################# use strict; use warnings; # You can put as many email ids as you wish in to, cc, bcc # But, be sure to use commas under one string. All mail ids are fake here, used just for demo :P # except admin@aliencoders.org ;) my %config = (mail_from =>'ranjan2012@gmail.com', mail_to => 'jaszi@gmail.com, sanjeejas@gmail.com', mail_cc => 'jasse@gmail.com, jassi@hotmale.com', mail_bcc => 'nazibal700@gmail.com, jasze@gmall.com', mail_subject => "Just testing Sendmail" ); #Call method to send preformatted email mail_target(); sub mail_target{ #Use \n\n to make sure that it will render as HTML format my $message = "From: $config{mail_from}\nTo: $config{mail_to}\nCc: $config{mail_cc}\nBcc: $config{mail_bcc}\nSubject: $config{mail_subject}\nContent-Type: text/html;\n\n";<br /> $message.= "<strong>Hi Dear,</strong> <br />If someone knows your email id, he/she can use it without your permission if he/she is using sendmail under Linux :D<br> Only issue is it says via which server. Through this you can find out from which server and location someone has used your email id.\n";<br /> my $MAIL_CMD = "/usr/sbin/sendmail -t -i"; if(!open(SENDMAIL, "| $MAIL_CMD")){ print "Unable to open an input pipe to $MAIL_CMD:"; exit(1); } print SENDMAIL $message."\n"; close(SENDMAIL); }
- Verify if you are using right sendmail path by using “which sendmail” command at linux box. You can see the sendmail path.
- If it says no command found then, type whereis sendmail and you will surely get the lists of sendmail. Use any of these.
Yes, try any of these listed modules in Perl:
If you click at show original option under Gmail, you can see, who sent you the mail and from where you got the mail.
Tips:
- You can use anyone’s email id at from section but use yours only. I used my friends id to prank them (but it’s not ethical though)
- It even didn’t check mail existence so you can write from email address as bill-gates@msft.com
- In case you forgot to use proper email format like bill-gates instead of bill-gates@msft.com then it would embed it’s server name as domain name like bill-gates@your-server-name.com
- You can even attach files
- You can send mails to many under to, cc and bcc. (Usually to should have only one email id)
With the help of masquerading, your outgoing email would appear from user@aliencoders.org instead of realunixuser@server01.aliencoders.org. This will also hide your internal user name or host name from rest of the world!
So this feature rewrites the hostname in the address of the outgoing mail. This can also be used when you have centralized mail server i.e. mail hub.
Masquerading Sendmail configuration (sendmail.mc not sendmail.cf)
Open your sendmail config file which will be located at /etc/mail/sendmail.mc:
[vim]
# vi /etc/mail/sendmail.mc
[/vim]
Append/add/modify these lines as follows: (usually these lines will be commented, so just uncomment it)
[vim]
MASQUERADE_AS(aliencoders.org)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(aliencoders.org)dnl
[/vim]
Before restarting the server, let’s sendmail.inc make sendmail configuration file ready using m4 command. The m4 utility is a macro processor intended as a front end for C, assembler, and other languages. Type man m4 in Linux box for more details. So, don’t edit sendmail.cf manually.
[vim]
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# /etc/init.d/sendmail restart
[/vim]
Disclaimer: This article is for educational purpose only. We are not responsible if you get sued or fired from your company while using this script or such knowledge. Use it at your own risk!