Tải bản đầy đủ (.docx) (36 trang)

TÌM HIỂU VÀ TRIỂN KHAI HỆ THỐNG GỬI EMAIL MARKETING VỚI GMAIL API

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.94 MB, 36 trang )

ĐỒ ÁN 51 EMAIL MARKETING

Bộ Cơng Thương
TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THỰC PHẨM TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN

----------

ĐỒ ÁN MÔN HỌC
ĐỀ TÀI: TÌM HIỂU VÀ TRIỂN KHAI HỆ THỐNG GỬI
EMAIL MARKETING VỚI GMAIL API
Giáo viên hướng dẫn : Trần Thị Bích Vân
Sinh viên thực hiện

:

1.2033180039_Nguyễn Ngọc Yến Linh
2. 2033181003_Nguyễn Minh Cần

TP.Hồ Chí Minh – 2021


ĐỒ ÁN 51 EMAIL MARKETING

LỜI CẢM ƠN
Đầu tiên, chúng em xin gửi lời cảm ơn đến Trường ĐH Công nghiệp Thực phẩm TP. Hồ
Chí Minh, Ban lãnh đạo nhà trường cùng tồn thể các q thầy cơ, đã tạo điều kiện cho
chúng em có một mơi trường học tập thuận lợi nhất để hồn thành chương trình học của
mình.
Và chúng em muốn gửi lời cảm ơn đến cô Trần Thị Bích Vân trong suốt thời gian
thực hành đồ án của cơ, cơ đã tận tình giảng dạy, hướng dẫn chi tiết để chúng em có đủ


kiến thức để thực hiện đề tài này. Chúc cơ có nhiều sức khỏe và thành công hơn trong
chặn đường sắp tới.
Cuối cùng, do chúng em chưa có nhiều kinh nghiệm cũng như hạn chế về mặt kiến
thức và trải nghiệm thức tế nên chắc chắn sẽ khơng tránh khỏi những sai sót trong đề tài
này. Chúng em mong nhận được sự phản hồi, đánh giá và đóng góp ý kiến của cơ để đề
tài của chúng em hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
Trân trọng!


ĐỒ ÁN 51 EMAIL MARKETING


ĐỒ ÁN 51 EMAIL MARKETING

MỤC LỤC


ĐỒ ÁN 51 EMAIL MARKETING

CHƯƠNG 1:GIỚI THIỆU ĐỀ TÀI VÀ CÁC VẤN ĐỀ
LIÊN QUAN
1.1 GIỚI THIỆU
– Marketing chưa bao giờ ngừng phát triển và mở rộng với những xu hướng mới
mẻ. Tuy nhiên, Email Marketing là một trong số những hình thức tồn tại lâu và
ln được sử dụng thường xuyên cho tới nay.
– Mục đích chính nhất email marketing chính là để doanh nghiệp có thể tương tác
với khách hàng của mình bằng những thơng điệp marketing cụ thể.
– Tìm hiểu về Email Marketing.
– Nhắc đến Email Marketing nhiều người cho rằng: Tại sao phải triển khai email

marketing, có hiệu quả gì? Mỗi lần gửi email cho người dùng toàn bị liệt vào mục
spam email? Mặc dù gửi email vào hộp thư chính của người nhận nhưng khơng ai
đọc?
– Tuy nhiên, Email Marketing lại luôn là phương pháp Marketing được ưu tiên tại
những tập đoàn, doanh nghiệp lớn và nhận được thành công vang dội.
– Tại sao nên sử dụng Email Marketing?
– Có 2 lợi thế lớn nhất của Email marketing so với các hình thức tiếp thị khác. Đó
là vấn đề tiết kiệm chi phí và cách thức hoạt động dễ dàng. Đây chính là cách tiếp
thị vơ cùng tiết kiệm so với các hình thức marketing khác. Cực kỳ phù hợp cho
mơ hình kinh doanh cho các doanh nghiệp vừa và nhỏ (SMEs).
– Email dường như là một cách tiếp thị tuyệt vời. Tuy nhiên, kha khá doanh nghiệp
đang bỏ ngỏ phương pháp marketing hiệu quả cực cao này.
– Những ngành nghề nào nên sử dụng Email Marketing?

CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG
5


ĐỒ ÁN 51 EMAIL MARKETING
2.1

Email Marketing là gì?

Email marketing là một hình thức marketing sử dụng thư điện tử gửi các thông tin, mua
bán, tiếp thị, chúc mừng,… tới khách hàng mục tiêu của bạn. Khi lên kế hoạch cho một
chiến dịch tiếp thị thì email marketing là một phương án tiết kiệm và hữu hiệu cho doanh
nhiệp. Tuy nhiên nếu lạm dụng, thiết kế nội dung không phù hợp thì thư của bạn rất dễ bị
SPAM và khách hàng khơng có thơng báo nhận thư.
Thơng thường, nội dung của email sẽ tập trung vào giới thiệu các chương trình khuyến
mãi, giới thiệu các sản phẩm, dịch vụ mới hoặc các thơng tin có lợi cho cơng ty. Các

email này sẽ được bộ phận Marketing của các đơn vị gửi qua hệ thống email của doanh
nghiệp. Hoặc sử dụng các phần mềm email marketing tự động chuyên nghiệp có sẵn từ
nhà cung cấp. Mỗi email được gửi đến khách hàng tiềm năng đều có thể coi là email
marketing.
Nhiệm vụ bộ phận làm email marketing là xây dựng nội dung sao cho hấp dẫn, bắt mắt.
Mục đích thu hút khách hàng click vào xem ngay từ khi đọc tiêu đề. Và sau khi đọc rồi
thì sẽ thực hiện các mong muốn của doanh nghiệp. Như mua hàng, điền form đăng ký
thông tin, đến tham gia sự kiện…v.v.
Một email được đánh giá là thành cơng khi nó thu hút được nhiều lượt xem, lượt click
cao.

6


ĐỒ ÁN 51 EMAIL MARKETING
2.2 Lợi ích của Email Marketing
Tiết kiệm chi phí: Điều bạn cần làm là thu thập email của khách hàng, phân luồng và thiết
kế email phù hợp, cuối cùng là gửi đúng thời điểm và chờ kết quả. Chi phí thật sự thấp so
với các hình thức marketing khác rất nhiều.
Tiếp cận người dùng rộng rãi: Số lượng tài khoản email nhiều hơn số lượng tài khoản
trên một mạng xã hội như Facebook, Instagram,…
Xây dựng hình ảnh, thông điệp của doanh nghiệp tốt tới khách hàng, tạo ra niềm tin và
nhu cầu sử dụng sản phẩm/dịch vụ của bạn.
Cá nhân hóa thơng tin và gửi các thơng điệp, thơng báo, chăm sóc khách hàng dễ dàng
hơn.

2.2.1

T


I

SAO

DOANH
NGHIỆP NÊN SỬ DỤNG
EMAIL MARKETING ?
Theo nhiều thống kê, Email Marketing là phương tiện mang lại nhiều lợi ích lớn. Một số
lợi ích mà marketing qua email mang lại cho doanh nghiệp như là:

Tiếp cận tốt

7


ĐỒ ÁN 51 EMAIL MARKETING
Đây là công cụ giúp bạn tiếp cận với khách hàng với quy mô rộng khắp và số lượng lớn.
Trong một chiến dịch, bạn có thể gửi từ 3000 – 5000 email đến khách hàng. Đây được
xem là hình thức tiếp cận khách hàng nhanh chóng nhất. Bởi hiện nay ai cũng đều đã có
sở hữu một địa chỉ email thư điện tử cho riêng mình.
Nhanh chóng, hiệu quả
Nếu sử dụng hệ thống email doanh nghiệp hoặc các cơng cụ gửi email chun nghiệp.
Bạn có thể gửi email rất nhanh và có thể đảm bảo email ln vào inbox của khách. Bên
cạnh đó, hoạt động này lại tiết kiệm thời gian thao tác (chủ yếu trên máy tính). Và có thể
thực hiện hằng ngày (khơng gị bó thời gian).
Dễ dàng đo lường, đánh giá
Email Marketing có thể đo lường, đánh giá thông qua lượt click mail. Lượt tiếp cận với
khách hàng hoặc % khách hàng mua sản phẩm. Với các cơng cụ đo lường, bạn có thể
đánh giá hành vi, thói quen mua sắm của người dùng. Từ đó cải thiện cho các chiến dịch
sau.

Tiết kiệm chi phí
Thơng thường, các chiến dịch Email marketing diễn ra trong thời hạn ngắn. (Thường tính
theo tuần, tháng.) Nên nếu thấy một chiến dịch khơng hiệu quả, bạn đã có thể rút kinh
nghiệm ngay. Sau đó thay đổi cho chiến dịch tiếp theo. Trong hồn cảnh đó thì chi phí
mất đi khơng q nhiều.
Xây dựng thương hiệu
Ngồi mục đích khuyến khích khách hàng sử dụng, mua sản phẩm. Email tiếp thị dạng
này cịn giúp các cơng ty xây dựng thương hiệu. Nhiều đơn vị kinh doanh trực tuyến tại
Việt Nam hiện nay đang xây dựng thương hiệu qua email rất tốt. Có thể kể đến như Grab,
Lazada, Hotdeal…

2.2.2

NHỮNG NGÀNH NÀO THÌ NÊN SỬ DỤNG EMAIL MARKETING ?

Ở thị trường Việt Nam, email marketing sẽ áp dụng được hiệu quả ở
những ngách (ngành nghề) nhất định. Còn những ngành nghề khác bạn
có thể dùng chatbot hay sms marketing thay thế.
8


ĐỒ ÁN 51 EMAIL MARKETING
Lĩnh vực phù hợp để triển khai email marketing bao gồm những nhóm
người dùng có thói quen sử dụng email nhiều hơn so với số đông.
2.2.3

TẠI SAO NÊN CÂN NHẮC SỬ DỤNG API GMAIL?

API cung cấp quyền truy cập RESTful vào các tính năng thường có với Gmail:
• Gửi và nhận email HTML.



Gửi và nhận email có tệp đính kèm.



Các hoạt động CRUD (tạo, đọc, cập nhật và xóa) với thư, bản nháp, chuỗi và
nhãn.



Quyền kiểm sốt hộp thư đến Gmail của bạn.



Khả năng tìm kiếm đầy đủ của giao diện người dùng web.



Thực hiện các truy vấn cụ thể.



Và nhiều thứ khác nữa…

Các nhà phát triển u thích Gmail API vì nó dễ triển khai, có thể sử dụng tùy chọn này
cho các trường hợp linh hoạt như:
• Gửi email tự động.



Sao lưu thư.



Di chuyển thư từ các dịch vụ email khác.

CÁC LOẠI TÀI NGUYÊN VÀ PHƯƠNG PHÁP
Với API Gmail, có thể xử lý một số loại tài nguyên và quản lý chúng bằng các
phương pháp sau:
Soạn tin


Tạo (tạo bản nháp mới).
Xóa (xóa bản nháp được chỉ định).
Lấy (lấy bản nháp được chỉ định).
Danh sách (liệt kê các bản nháp trong hộp thư).
Gửi (gửi bản nháp được chỉ định theo các tiêu đề Tới, Cc và Bcc.)
Cập nhật (cập nhật nội dung bản nháp được chỉ định).

Gửi tin nhắn

9


ĐỒ ÁN 51 EMAIL MARKETING


Xóa tin nhắn theo ID.
Sửa đổi nhãn trên các thơng báo được chỉ định.
Xóa.

Thùng rác (chuyển thư đã chỉ định vào thùng rác).
Hủy rác (chuyển thư đã chỉ định từ thùng rác).

Gắn nhãn


Tạo nhãn.
Xóa (xóa nhãn đã chỉ định).
Get (lấy nhãn được chỉ định).Cập nhật các nhãn mới nhất.

Lịch sử


Là danh sach liệt kê tất cả các thay đổi của các hộp thư.

Cài đặt


GetAutoForwarding.



UpdateAutoForwarding.

GetImap.


UpdateImap.




GetLanguage.

• UpdateLanguage.

10


ĐỒ ÁN 51 EMAIL MARKETING

CHƯƠNG 3: THIẾT KẾ HỆ THỐNG
3.1 GIỚI THIỆU

Mơ hình dịch vụ email marketing

Đối tượng sử dụng dịch vụ email marketing
Các đối tượng được xác định sẽ sử dụng dịch vụ Email Marketing là những công ty có số
lượng khách hàng lớn, các đơn vị có hình thức kinh doang cần quảng bá sản phản phẩm
của mình cho khách hàng.
Mục đích : Nhằm lơi kéo khách hàng sử dụng sản phẩm của mình , hoặc để tri ân khách
hàng từ đó tạo cái nhìn tốt về cơ sở kinh doanh dịch vụ .
11


ĐỒ ÁN 51 EMAIL MARKETING
Các dịch vụ được cơng cấp
• Chúc mừng sinh nhật tri ân khách hàng có trong tháng.
Ví dụ : Khách hàng có sinh nhật trong tháng 7 sẽ nhận được email chúc mừng sinh nhật
vào đầu tháng ngày 1 tây.


• Quảng cáo sản phẩm mới trong tháng.
Ví dụ: Khách hàng sẽ nhận được email quảng cáo sản phẩm mỗi khi doanh nghiệm có
sản phâm mới.

3.2 THIẾT KẾ HỆ THỐNG
3.2.1 GMAIL API









/>Enabling the "Gmail API"
A Google account with Gmail enabled
User là , khi đó user được bật Gmai API và sẽ dùng
nó cho project và lấy danh sách cần gửi mail từ API.
/> />Danh sách nhân viên được lấy từ API có sẵn là:
.
API url: . Khi mở Url
lên thì nó sẽ gọi API để lấy danh sách nhân viên hiện lên.

3.2.2 KẾT HỢP APP GỬI MAIL VỚI GMAIL API
1. Step 1: Create a project at Google API Console.

12



ĐỒ ÁN 51 EMAIL MARKETING

2. Step 2: Enable Gmail API.
3. Step 3: Credentials and authentication with OAuth 2.0.

13


ĐỒ ÁN 51 EMAIL MARKETING

14


ĐỒ ÁN 51 EMAIL MARKETING
#### Install
Pip google-api-python-client==1.12.8
pip install google-auth-httplib2==0.1.0
pip install google-auth-oauthlib==0.4.1
pip install requests==2.25.1
3.2.3 CODE WITH PYCHARM
• CHƯƠNG TRÌNH HAPPY BIRTHDAY VỚI NHỮNG
KHÁCH HÀNG CÓ NGÀY SINH NHẬT TRONG THÁNG
import os.path
import base64
import requests
from datetime import datetime
from requests.exceptions import HTTPError
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

from google.oauth2.credentials import Credentials
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart

CLIENT_SECRET_FILE = 'client_secret.json'
TOKEN_FILE = 'token.json'
API_NAME = 'gmail'
API_VERSION = 'v1'
SCOPES = [' />REQUEST_URL = ' />COMPANYLIST = ['CTY ABC', 'CTY HONG KONG']
COMPANYID = ['cty_abc', 'cty_hk']
15


ĐỒ ÁN 51 EMAIL MARKETING
DIR_NAME = './happy_birth_day'
IMAGE_FILE = 'image.jpg'
CONTEXT_FILE = 'context.txt'

def create_service():
creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first time.
if os.path.exists(TOKEN_FILE):
creds = Credentials.from_authorized_user_file(TOKEN_FILE, SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:

flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE,
SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open(TOKEN_FILE, 'w') as token:
token.write(creds.to_json())
try:
# Call the Gmail API
service = build(API_NAME, API_VERSION, credentials=creds)
print 'Connect succeed'
return service
except Exception as e:
print(e)
return None
def create_message(to, index):
subject = "[{0}] HAPPY BIRTHDAY".format(COMPANYLIST[index])
16


ĐỒ ÁN 51 EMAIL MARKETING
msg = MIMEMultipart('related')
msg['Subject'] = subject
msg['To'] = to['email']
dirPath = DIR_NAME + '_' + COMPANYID[index]
f = open(dirPath + '/' + CONTEXT_FILE, 'rb')
mailContext = f.read()
f.close()
html = """\
<html>
<head></head>

<body>

Dear {name}"


{mailContext}


<img src="cid:image1" alt="Logo" style="width:352px;height:352px;">

</body>
</html>
""".format(name=to['user_name'], mailContext=mailContext)
# Record the MIME types of text/html.
part2 = MIMEText(html, 'html')
# Attach parts into message container.
msg.attach(part2)
# This example assumes the image is in the current directory
imgFilePath = dirPath + '/' + IMAGE_FILE
fp = open(imgFilePath, 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
# Define the image's ID as referenced above
msgImage.add_header('Content-ID', '<image1>')
msg.attach(msgImage)
17


ĐỒ ÁN 51 EMAIL MARKETING
raw_message = base64.urlsafe_b64encode(msg.as_string())
return {
'raw': raw_message
}
def send_message(service, message):
try:
message = service.users().messages().send(userId='me', body=message).execute()

print('Message Id: %s' % message['id'])
return message
except Exception as e:
print('An error occurred: %s' % e)
return None
def main():
for index in range(len(COMPANYLIST)):
try:
response = requests.get(REQUEST_URL)
# If the response was successful, no Exception will be raised
response.raise_for_status()
except HTTPError as http_err:
print 'HTTP error occurred: ', http_err
except Exception as err:
print 'Other error occurred: ', err
else:
print 'Request API success!'
service = create_service()
if service is not None:
currentMonth = datetime.now().month
dataJson = response.json()['results']
for item in dataJson:
birthdayDate = datetime.strptime(item['birthday'], "%Y-%m-%d")
if currentMonth == birthdayDate.month:
18


ĐỒ ÁN 51 EMAIL MARKETING
send_message(service, create_message(item, index))
if __name__ == '__main__':

main()

• CHƯƠNG TRÌNH QUẢNG CÁO SẢN PHẨM MỚI ĐẦU
HÀNG THÁNG
import os.path
import mimetypes
import base64
import requests
from datetime import datetime
from requests.exceptions import HTTPError

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials

from email import encoders
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart

CLIENT_SECRET_FILE = 'client_secret.json'
19


ĐỒ ÁN 51 EMAIL MARKETING
TOKEN_FILE = 'token.json'
API_NAME = 'gmail'
API_VERSION = 'v1'
SCOPES = [' />REQUEST_URL = ' />COMPANYLIST = ['HSBC Bank', 'Vietcom Bank']

COMPANYID = ['hsbc', 'vcb']
DIR_NAME = './product_advertising_'
SUBJECT_FILE = 'subject.txt'
DATA_FILE = 'data.html'

def create_service():
creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first time.
if os.path.exists(TOKEN_FILE):
creds = Credentials.from_authorized_user_file(TOKEN_FILE, SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES)
creds = flow.run_local_server(port=0)
20


ĐỒ ÁN 51 EMAIL MARKETING
# Save the credentials for the next run
with open(TOKEN_FILE, 'w') as token:
token.write(creds.to_json())
try:
# Call the Gmail API
service = build(API_NAME, API_VERSION, credentials=creds)
print 'Connect succeed'
return service

except Exception as e:
print(e)
return None

def create_message(to, path):
html = open(path + DATA_FILE, 'rb')
mimeMessage = MIMEText(html.read(), 'html')
mimeMessage['to'] = to['email']
if os.path.exists(path + SUBJECT_FILE):
f = open(path + SUBJECT_FILE, 'rb')
subject = f.read()
f.close()
mimeMessage['subject'] = subject
print mimeMessage['subject']
f.close()

raw_message = base64.urlsafe_b64encode(mimeMessage.as_string())
21


ĐỒ ÁN 51 EMAIL MARKETING
return {
'raw': raw_message
}

def send_message(service, message):
try:
message = service.users().messages().send(userId='me', body=message).execute()
print('Message Id: %s' % message['id'])
return message

except Exception as e:
print('An error occurred: %s' % e)
return None

def main():
currentMonth = datetime.now().month
for index in range(len(COMPANYLIST)):
path = DIR_NAME + COMPANYID[index] + '/' + str(currentMonth) + '/'
print path
if not os.path.exists(path + DATA_FILE):
continue
try:
response = requests.get(REQUEST_URL)
# If the response was successful, no Exception will be raised
response.raise_for_status()
except HTTPError as http_err:
22


ĐỒ ÁN 51 EMAIL MARKETING
print 'HTTP error occurred: ', http_err
except Exception as err:
print 'Other error occurred: ', err
else:
print 'Request API success!'
service = create_service()
if service is not None:
dataJson = response.json()['results']
for item in dataJson:
send_message(service, create_message(item, path))


if __name__ == '__main__':
main()

3.2.4 SỬ DỤNG TASK SCHEDULER
– Nguồn tham khảo: />– Task Scheduler là gì?
– Task Scheduler là một cơng cụ có sẵn trong Windows giúp người dùng thực hiện một
số hành động và tác vụ trên máy tính như tự động chạy một phần mềm nào đó có sẵn
trên máy tính. Task Scheduler có rất nhiều tính năng hỗ trợ cho máy tính, khả năng tự
động hóa các tác vụ người dùng muốn chạy trên Windows nhanh chóng và hiệu quả.
– Thực hiện (trên windown 10)
Bước 1: Mở Task Scheduler trên máy tính.

23


ĐỒ ÁN 51 EMAIL MARKETING

Bước 2: Chọn Action và chọn Create Basic Task để tạo một tác vụ mới.

24


ĐỒ ÁN 51 EMAIL MARKETING

25


×