Email Sender Web Application: Silver Oak College of Engineering & Technology

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

SILVER OAK COLLEGE OF ENGINEERING &

TECHNOLOGY

Email Sender Web Application


INTERNSHIP REPORT
A report submitted in partial fulfilment of the requirements for the Award of Degree of

BACHELOR OF TECHNOLOGY
In
INFORMATION TECHNOLOGY
By
K R Raghunath

ENROLLMENT NO: 190770116115

Under Supervision of
EXTERNAL FACULTY NAME:
Mr Alkesh Kaba

COMPANY NAME:
CreArt Solutions OPC PVT LTD
Ahmedabad (Gujarat, INDIA)
(Duration: 20 June to 9 July)

GUIDED BY
INTERNAL FACULTY NAME:
Prof. Aishwarya Rajput

Silver Oak College of Engineering & Technology


Opp. Bhagwat Vidhyapith, Near Gota Cross Road, Ahmedabad-382481
Gujarat Technological University, Ahmedabad
i
CERTIFICATE

This is to certify that the “Internship report” submitted by K R Raghunath (Enrollment No:
190770116115) is work done by him/her and submitted during 2022 – 2023 academic year, in
partial fulfilment of the requirements for the award of the degree of BACHERLOR OF
TECHNOLOGY in INFORMATION TECHNOLOGY, at Company Name CreArt
Solutions OPC PVT LTD , Ahmedabad City.

GUIDED BY: Prof. Aishwarya Rajput EXTERNAL GUIDE: Mr Alkesh Kaba

ii
iii
ACKNOWLEDGEMENT
I have taken efforts in this project. However, it would not have been possible without the kind
support and help of many individuals and organizations. I would like to extend my sincere
thanks to all of them.

I am highly indebted to Creart Solution OPC PVT LTD, Alkesh Kaba for their guidance and
constant supervision as well as for providing necessary information regarding the project &
also for their support in completing the project.

I would like to express my gratitude towards my college faculty mentor Prof. Aishwarya Rajput
and our HOD Prof. Vikas Tulshyan I would like to express my special gratitude and thanks to
industry persons for giving me such attention and time.

My thanks and appreciations developing the project and people who have willingly helped me
out with their abilities.

STUDENT NAME:
K R Raghunath
(ENROLLMENT NO: 190770116115)

iv
ABSTRACT

Email is the most common mode of communication today. Email Sender is a Web Application
by which we can directly send the mail to recipient form Our Application. After getting this
application we would not be required to go on any of existing mail portal like Gmail, yahoo,
etc. It is main resource for business communication. As it is most popular and common mode
of communication on internet, it also attracts criminals or persons having mischievous intent,
so it is necessary to secure our e-mail system and also to identify criminal.

v
Opportunity:

I worked on short project at CreArt Solution named Email Sender Web Application means to
that python provides a mail sending interface via the smtplib module, Django provides a couple
of light wrappers over it. These wrappers are provided to make sending email extra quick, to
help test email sending during development, and to provide support for platforms that can't use
SMTP.

Methodology:

This research work “Design and implementation of Email Sender Web Application”.

The system will be a web-based application and will be implemented on a relational database
system (MySQL).

Html (Hypertext mark-up language) and CSS (cascading style sheet) will be used to design
the web-user interface, Python will be used as the server-side script language to link the
interface and MySQL Database. Django is a high-level Python web framework that enables
rapid development of secure and maintainable websites.

Key parts of the report:

Haven’t you observed, when you register on some websites, you get a mail from that company
or institution? The email would be, verification email or welcome email, account creation
successful email or thanks-regard email, etc. For example, when you create a Google account,
the first mail you get would be something like, “Hi Xyz, Welcome to Google. Your new account
comes with access to Google products, apps, and service” Sending these types of emails from
your Django application is quite easy.

Although you can refer to the documentation for knowing more about sending emails in Django,
but this is remarkably condensed and made easier

Benefits to the company / Institution through your post:

Email is fast, inexpensive and reliable. Unlike other forms of communication, it's not
necessarily time-sensitive. If you're speaking to someone on the phone or in a chat, for example,
a customer will likely get impatient if you take a few minutes to respond to a question. If you're
communicating with email, you can take your time to form a response. It's usually acceptable
to respond to an email within hours, rather than minutes or seconds.

vi
Email is also practically permanent. When you send people an email, both you and the recipients
can keep your copies for years, and that requires a minimal amount of storage space. Emails
are easy to search to find records of your interactions. Integrated into a client-relationship
management (CRM) platform, information in emails can provide valuable information about a
client's history.

Learning Objectives/Internship Objectives:

Internships are generally thought of to be reserved for college students looking to gain
experience in a particular field. However, a wide array of people can benefit from Training
Internships in order to receive real world experience and develop their skills.

An objective for this position should emphasize the skills you already possess in the area and
you interest in learning more.

Internships are utilized in a number of different career fields, including architecture,


engineering, healthcare, economics, advertising and many more.

Some Internships are used to allow individuals to perform scientific research while others are
specifically designed to allow people to gain first-hand experience working.

Utilizing Internships is a great way to build your resume and develop skills that can be
emphasized in your resume for future jobs. When you are applying for Training internship,
make you stand apart from the rest of the applicants so that you have an approved chance of
landing the position.

vii
INDEX

S. No CONTENTS page no

1. Introduction 9
1.1 Modules 9

2. Analysis 10-12
2.1 Requirement analysis 10-11
2.2 Feasibility study 11-12

3. Software requirements specifications 13


3.1 System configuration 13
3.2 Software requirements 13
3.3 Hardware requirements 13

4. Technology 14-16
4.1 Python 14
4.2 HTML 14
4.3 CSS 15
4.4 Django 15
4.5 Database 15-16
5. Coding 17
6. Testing 18
7. Result/ Screenshots of Implementation 19-22
8. Conclusion 23
9. Bibliography/References 24

viii
INTRODUCTION

Email (electronic mail) is a way to send and receive messages across the Internet. It's similar
to traditional mail, but it also has some key differences.

Most web applications use email to manage crucial operations, such as resetting passwords,
account activation, receiving customer feedback, sending newsletters and marketing
campaigns. Most of these tasks require a dedicated service like SendGrid or Mailgun. But if
you don’t expect your site to get a huge quantity of visitors, you can actually get a lot done
through your personal email provider.

Sending emails with your personal email is a reasonable option for small or testing projects,
so we’ll take that approach here to keep things simple. However, it’s not a good idea to use
your personal email service for your production website. You can learn more about Gmail
sending restrictions, or refer to the limitations of your email provider.

1.1 MODULES:

This research work “Design and implementation of Email Sender Web Application”.

The system will be a web-based application and will be implemented on a relational database
system (MySQL).

Html (Hypertext mark-up language) and CSS (cascading style sheet) will be used to design
the web-user interface, Python will be used as the server-side script language to link the
interface and MySQL Database. Django is a high-level Python web framework that enables
rapid development of secure and maintainable websites.

9
ANALYSIS

2.1 REQUIREMENT ANALYSIS:


Django comes with a ready and easy-to-use light engine to send e-mail. Similar to
Python you just need an import of smtplib. In Django you just need to import
django.core.mail. To start sending e-mail, edit your project settings.py file and set the
following options −
• EMAIL_HOST − smtp server.
• EMAIL_HOST_USER − Login credential for the smtp server.
• EMAIL_HOST_PASSWORD − Password credential for the smtp server.
• EMAIL_PORT − smtp server port.
• EMAIL_USE_TLS or _SSL − True if secure connection.
Create a "sendSimpleEmail" view to send a simple e-mail.
Here is the details of the parameters of send_mail −
• subject − E-mail subject.
• message − E-mail body.
• from_email − E-mail from.
• recipient_list − List of receivers’ e-mail address.
• fail_silently − Bool, if false send_mail will raise an exception in case of
error.
• auth_user − User login if not set in settings.py.
• auth_password − User password if not set in settings.py.
• connection − E-mail backend.
• html_message − (new in Django 1.7) if present, the e-mail will be
multipart/alternative.
send_mass_mail parameters details are −
• datatuples − A tuple where each element is like (subject, message,
from_email, recipient_list).
• fail_silently − Bool, if false send_mail will raise an exception in case of
error.
• auth_user − User login if not set in settings.py.
• auth_password − User password if not set in settings.py.
• connection − E-mail backend.
send_mass_mail parameters details are −
• datatuples − A tuple where each element is like (subject, message,
from_email, recipient_list).
• fail_silently − Bool, if false send_mail will raise an exception in case of
error.
10
• auth_user − User login if not set in settings.py.
• auth_password − User password if not set in settings.py.
• connection − E-mail backend.
Sending e-mails to admins and managers using mail_admins and mail_customer
methods
These methods send e-mails to site administrators as defined in the ADMINS option of
the settings.py file, and to site managers as defined in CUSTOMERS option of the
settings.py file. Let's assume our ADMINS and CUSTOMERS options look like −
• ADMINS = (('admin', '[email protected]'),)
• CUSTOMERS = ((‘surya', ' [email protected]'),)

2.2 FEASIBILITY STUDY:

The main objective of this project is customer can easily choose their required
product anywhere and order it, and also this process is time-saving.

• Technical Feasibility
• Operation Feasibility
• Economic Feasibility

TECHNICAL FEASIBILITY:

The technical issue usually raised during the feasibility stage of the
investigation includes the following:
• Does then necessary technology exist to do what is suggested?
• Does the proposed equipment have the technical capacity to hold the data required to
use the new system?
• Will the proposed system provide adequate response to inquiries, regardless of the
number or location of users?
• Can the system be upgraded if developed?
• Are there technical guarantees of accuracy, reliability, ease of access and data security.

OPERATIONAL FEASIBILITY:

Proposed projects are beneficial only if they can be turned out into information system.
That will meet the organization’s operating requirements. Operational feasibility aspects of
the project are to be taken as an important part of the project implementation. Some of the
important issues raised are to test the operational feasibility of a project includes the following:

11
• Is there sufficient support for the management from the users?
• Will the system be used and work properly if it being developed and implement?
• Will there be any resistance from the user that will undermine the possible applications
benefits?
• This system is targeted to be in accordance with the above-mentioned issues.
Beforehand, the management is issues and user requirements have
• Been taken into consideration.so there is to question of resistance from the users that
can undermine the possible applications benefits.
• The well-planned designed would ensure the optimal utilization of the computer
resource and would help in the improvement of performance status.

ECONOMIC FEASIBILITY:

A system can be developed technically and the will be used if installed must still be a good
investment for the organization. In the economic feasibility, the development cost in creating
the system is evaluated against the ultimate benefits derived from the new system. Financial
benefits must equal or exceed the costs.

The system is economically feasible. It does not require any addition hardware or software.
Since the interface for this system is developed using the existing resources and technologies
available at NIC, there is nominal expenditure and economic feasibility for certain.

12
SOFTWARE REQUIREMENTS SPECIFICATIONS

3.1 SYSTEM CONFIGURATIONS:

The software requirement specification can produce at the culmination of the analysis task.
The function and performance allocated to software as part of system engineering are refined
by established a complete information description, a detailed functional description, a
representation of system behaviour, and indication of performance and design constrain,
appropriate validate criteria, and other information pertinent to requirements.

3.2 Software requirements:

Operating System : Windows 10


Front End : HTML, CSS
Back End : Python using Django
Database : MySQL
IDE : Visual Studio Code
Web Server : XAMPP, Browser (Chrome, Firefox
etc.)
3.3 Hardware Requirements:

Processor : Intel core i3


Memory : 4GB RAM
Hard Disk : 256GB

13
TECHNOLOGY

4.1 PYTHON

Python is an interpreter, object-oriented, high-level programming language with dynamic


semantics.

Its high-level built in data structures, combined with dynamic typing and dynamic binding,
make it very attractive for Rapid Application Development, as well as for use as a scripting or
glue language to connect existing components together.

Python's simple, easy to learn syntax emphasizes readability and therefore reduces the cost of
program maintenance.

Python supports modules and packages, which encourages program modularity and code
reuse.

The Python interpreter and the extensive standard library are available in source or binary
form without
Charge for all major platforms, and can be freely distributed.

4.2 HTML

HTML stands for Hyper Text Mark-up Language. HTML is the most widely used language to
write web pages.

Hypertext refers to the way in which web pages are linked together. Thus, the link available
on a webpage is called Hypertext.

As its name suggests, HTML is a Mark-up language which means you use HTML to simply
mark-up a text document with tags that tell a web browser how to structure it to display.

HTML was developed with the intent of defining the structure of documents like headings,
paragraphs, lists, and so forth to facilitate the sharing of scientific information between
researchers.

HTML is a mark-up language and makes use of various tags to format the content. These tags
are enclosed within angle braces „<tag name>‟. Except some tags, most of the tags have their
corresponding closing tags.

14
4.3 CSS

CSS means “Cascading Style Sheets”.

It is a simple language intended to simplify the process of making web pages presentable. It
handles the part of Look and Feel of webpage.

CSS is a style sheet language used for describing the presentation of a document written in a
mark-up language. Although most often used to set the visual style of web pages and user
interfaces written in HTML and XHTML, the language can be applied to any XML document,
including plain XML, SVG and XUL, and is applicable to rendering in speech, or on other
media. Along with HTML and JavaScript, CSS is a cornerstone technology used by most
websites to create visually engaging webpages, user interfaces for web applications, and user
interfaces for many mobile applications.

CSS is designed primarily to enable the separation of presentation and content, including
aspects such as the layout, colors, and fonts. This separation can improve content
accessibility, provide more flexibility and control in the specification of presentation
characteristics, and enable multiple HTML pages to share formatting by specifying the
relevant CSS in a separate. CSS file, and reduce complexity and repetition in the structural
content.

4.4 DJANGO

Django is a high-level Python Web framework that encourages rapid development and clean,
pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web
development, so you can focus on writing your app without needing to reinvent the wheel. It’s
free and open source.

4.5 DATABASE

MySQL is a fast, easy-to-use RDBMS being used for many small and big businesses. MySQL
is developed, marketed and supported by MySQL AB, which is a Swedish company. MySQL
is becoming so popular because of many good reasons:

MySQL is released under an open-source license. So you have nothing to pay to use it.

MySQL is a very powerful program in its own right. It handles a large subset of the
functionality of the most expensive and powerful database packages.

MySQL uses a standard form of the well-known SQL data language.

15
MySQL works on many operating systems and with many languages including PHP, PERL,
C, C++, JAVA, etc.

MySQL works very quickly and works well even with large data sets.

16
CODING
Urls.py

from django.contrib import admin


from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('customer/', include('customer.urls')),
]

Views.py

from django.shortcuts import render, redirect


from django.core.mail import send_mail
from django.conf import settings
from django.contrib import messages

def email(request):
return render(request, 'customer/email.html')

def email_info(request):
myto = request.POST['to']
mysubject = request.POST['subject']
mymessage = request.POST['message']

#email
send_mail(mysubject,mymessage, settings.EMAIL_HOST_USER,[myto],
fail_silently=False)
messages.success(request, 'Email sent successfully.')
return redirect('/customer/email/')

Main Project\Urls.py

from django.contrib import admin


from django.urls import path, include
from customer import views

urlpatterns = [
path('email/', views.email, name='email'),
path('email_info/', views.email_info, name='email_info'),
]

17
TESTING

Testing Email Sending in D’jango:

Once you’ve got everything prepared for sending email messages, it is necessary to do
some initial testing of your mail server. In Python, this can be done with one command:

python -m smtpd -n -c DebuggingServer localhost:1025

This allows you to send emails to your local SMTP server. The DebuggingServer feature
won’t actually send the email but will let you see the content of your message in the shell
window. That’s an option you can use off-hand.

TestCase is a solution to test a few aspects of your email delivery. It


uses locmem.EmailBackend, which, as you remember, stores messages in the local
memory cache – django.core.mail.outbox. So, this test runner does not actually send
emails. Once you’ve selected this email backend

EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'

18
SCREENSHOTS OF IMPLEMENTATION

19
20
21
22
CONCLUSION

In this Internship, we learn about Core Python concepts using D’jango and
briefly set up a new Django project that we used to send an email using a free
service (Google Gmail SMTP) provider.

Sending Emails in Django is easy. The best part is that Default backends provided
by Django are all secure. They raise proper errors when something is wrong with
the header.

Email is a great utility for websites. It comes in handy whether we are subscribing
to a website or resetting the password.

23
BIBLIOGRAPHY

The following books are referred during the analysis and execution phase of the project

REFRENCES:

Python using D’jango Internship: CreArt Solutions OPC PVT LTD Ahmedabad (Gujarat,
INDIA)

WEBLINKS:

In order to learn about the required software to be used for the project we used,
https://www.jetbrains.com/pycharm/

Other than the text books mentioned above, we also referred for quick learning at
https://www.w3schools.com/python/default.asp

For standard information about the framework, we referred


https://docs.djangoproject.com/en/3.2/

24

You might also like