- vừa được xem lúc

Nhận thông báo email mới theo cách lập trình viên

0 0 46

Người đăng: Tiền Minh Vy

Theo Viblo Asia

Sử dụng hộp thư trên hosting trên Internet khá là bất tiện, một trong số đó chính là việc thường xuyên bỏ lỡ những email quan trọng được gửi từ đối tác, khách hàng,… Và bài viết này chúng ta sẽ cùng khắc phục vấn đề trên, tự làm tính năng nhận thông báo email mới theo cách của một lập trình viên.

Bài viết gốc tại: https://tienminhvy.com/chia-se/nhan-thong-bao-email-moi-tren-hosting/

Nhận thông báo email mới trên hosting

Trong bài này, chúng ta sẽ sử dụng ngôn ngữ lập trình PHP (vì hosting của mình sử dụng máy chủ Litespeed cho PHP 7.4). Và đồng thời, ta sẽ cần một tài khoản email cùng mật khẩu được tạo trên hosting luôn.

Trước tiên, ta cần tạo một tài khoản Pushbullet (bạn hãy nhấn vào liên kết màu xanh trước đó để biết cách cài đặt Pushbullet nha – bạn cũng có thể nhận thông báo email mới bằng nền tảng khác nữa, nhưng Pushbullet vẫn nên dùng hơn).

Sau đó, bạn truy cập liên kết này, tiếp tục bạn rê chuột xuống và nhấn vào nút “Create access token”.

Bạn sẽ thấy một dãy ký tự nằm bên trong nền đen, hãy lưu dãy ký tự này ở đâu đó trước khi tiếp tục (lưu ý là dãy kí tự này bạn phải bảo mật thật kỹ, vì nếu người khác biết được dãy ký tự này sẽ có thể sử dụng API bằng tài khoản của bạn, thậm chí có thể xem, chỉnh sửa hay xoá tài khoản luôn đấy!)

Sau đó, bạn đăng nhập vào hosting bạn đang dùng (ở bài viết này mình sử dụng cPanel). Và mình sẽ vào File manager và tạo một file tên là sendNotify.php (bạn có thể đặt tên khác mình, không cần nhất thiết phải theo y vậy).

Lưu ý, file php này bạn nên đặt nó ở vị trí chỉ có thể truy cập ở phía server để tăng độ bảo mật. Nhưng nếu bạn dùng Cron Jobs trỏ đến URL thì cứ đặt nó ở trong public_html để có thể truy cập.

Và, file php này bạn điền vào đoạn code bên dưới:

<?php // copyright by tienminhvy.com - all rights reserved $mbox = imap_open("{localhost:993/imap/ssl/novalidate-cert/debug}INBOX", "_@.com", "Mật khẩu của email") or die("can't connect: " . imap_last_error()); $check = imap_mailboxmsginfo($mbox); if ($check) { if ($check->Recent>0) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.pushbullet.com/v2/pushes'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"body":"Dear Vy, we have checked your mailbox (_@.com) and found '.$check->Recent.' new email(s). Please check your mailbox for more info.", "title":"New emails!", "type":"link", "url":"https://diachiwebmailcuaban.com"}'); $headers = array(); $headers[] = 'Access-Token: tokenCuaBanODay'; $headers[] = 'Content-Type: application/json'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); }
} else { echo "imap_mailboxmsginfo() failed: " . imap_last_error() . "<br />\n";
} imap_close($mbox); ?>

Và mình xin giải thích công dụng của một số dòng như sau:

  • Dòng 3: mở IMAP để đọc email, nếu code lỗi, bạn có thể thay 993 thành 143 (với 143 là port không bảo mật, 993 là port SSL/TLS), bạn điền email và mật khẩu email của bạn tại dòng này luôn.
  • Dòng 6: đọc thông tin IMAP.
  • Dòng 8: kiểm tra xem có trả về kết quả không, nếu không code sẽ bỏ qua và chạy dòng 34
  • Dòng 9: kiểm tra xem có thư mới hay không, nếu có thực thi code
  • Dòng 12 -> 31: gọi cURL trỏ đến Pushbullet để gửi thông báo, giúp bạn nhận thông báo email mới. Các dòng bạn có thể thay đổi:
    • Dòng 16: nội dung thư, có thể thay đổi tất cả trừ $check->Recent vì đoạn này sẽ hiện số thư mới gửi đến trong hòm thư của bạn.
    • Dòng 17: tiêu đề của thông báo
    • Dòng 19: liên kết đến địa chỉ bạn đăng nhập để xem thư
    • Dòng 22: access token (phải đổi), đổi tokenCuaBanODay thành token của bạn đã tạo ở trên.
  • Dòng 34: thông báo lỗi (nếu có)
  • Dòng 37: đóng IMAP

Sau khi tạo xong, bạn lưu lại và trở về cPanel, sau đó truy cập Cron Jobs. Tiếp tục, bạn rê chuột xuống và ngay mục Common Settings, chọn “Once Per Minute”.

Ngay mục Command, bạn nhập theo cú pháp sau:

/usr/local/bin/php /home/tendangnhapcuaban/public_html/duong/dan/den/file/php

và bạn cần đổi tendangnhapcuaban thành tên đăng nhập cPanel, đồng thời publichtml/duong/dan/den/file/php cũng đổi thành đường dẫn đến file php mà bạn đã tạo ở trên.

Và đây là thành quả, mình đã nhận thông báo email mới khi có email mới đến, đơn giản đúng không nào?

Như vậy, bài viết này mình đã hướng dẫn cách để nhận thông báo email mới trên hosting theo cách lập trình viên rồi đó. Bạn còn thắc mắc gì, cứ nhắn cho mình ở phía dưới nha! Chúc các bạn thành công!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Flutter - GetX - Using GetConnect to handle API request (Part 4)

Giới thiệu. Xin chào các bạn, lại là mình với series về GetX và Flutter.

0 0 351

- vừa được xem lúc

API vs WebSockets vs WebHooks: What to Choose?

. Khi xây dựng bất kì một ứng dụng nào, chúng ta đều cần phải có một cơ chế đáng tin cậy để giao tiếp giữa các thành phần của nó. Đây là khi APIs, WebSockets và WebHooks được ứng dụng vào.

0 0 101

- vừa được xem lúc

Sử dụng Fast JSON API serialization trong Ruby on Rails

Ở bài viết này chúng ta sẽ thử tạo 1 project API sử dụng gem fast_jsonapi cho serializer. Đầu tiên là tạo một project API mới. $ rails new rails-jsonapi --database=postgresql --skip-action-mailbox --skip-action-text --skip-spring -T --skip-turbolinks --api. .

0 0 131

- vừa được xem lúc

Test thử ba loại API chụp màn hình Windows

Hiện tại, Windows cung cấp khoảng ba cách để chụp màn hình. Thế thì cái nào là nhanh nhất? Tôi muốn test thử từng cái.

0 0 71

- vừa được xem lúc

Ngừng sử dụng REST cho API — GraphQL là cách tốt hơn

Mở đầu. REST đã được nhiều developers sử dụng để gửi dữ liệu qua HTTP trong khi GraphQL thường được trình bày như một công nghệ thay thế các API REST.

0 0 98

- vừa được xem lúc

Quản lý và sử dụng API trong Nuxt bằng cách sử dụng Repository Pattern

Mở đầu năm mới, à nhầm, mở đầu bài viết. Cái tên NuxtJS chắc hẳn cũng không còn xa lạ gì với những bạn yêu thích VueJS nữa, đương nhiên mình cũng là một chàng trai dành tình yêu to lớn cho frameworks này.

0 0 226