Visual c net gửi thư. Hình thức gửi dữ liệu qua email đơn giản nhất bằng HTML và PHP. Kiểm tra thư của hoạt động máy khách smtp
Xin chào. Vì chứng cuồng đồ của tôi đang tiến triển nên tôi quyết định thêm một bài viết khác. Bài viết, như mọi khi, sẽ chứa các ví dụ bằng C#, nhưng một chuyên gia VB ít nhiều có kỹ năng sẽ dễ dàng viết lại tất cả mã trong VB.NET.
Hãy bắt đầu thôi, tôi đoán vậy
Để gửi E-Mail chúng ta cần sử dụng ba đối tượng. System.Net.Mail.SmtpClient để gửi tin nhắn, System.Net.Mail.MailMessage để hiển thị tin nhắn và System.Net.NetworkCredential để ủy quyền.
Hãy tạo một khách hàng:
Var client = new SmtpClient("$Mail-Server-Address$", $Mail-Server-Port$);
Tham khảo của nhà thiết kế:
SmtpClient(máy chủ chuỗi, cổng int);
Hãy tạo một thể hiện của lớp MailMessage:
Var msg = new MailMessage("from", "to");
Bây giờ hãy đặt chủ đề và nội dung của bức thư (nhân tiện, mọi thứ đều có thể được đặt trong hàm tạo). Và cả thông tin đăng nhập và mật khẩu cho ứng dụng khách smtp. Sau đó, chúng ta sẽ gửi thư bằng phương thức Send của đối tượng client:
Var client = new SmtpClient("smtp.yandex.ru"); var msg = new MailMessage("from", "to"); msg.Subject = "Tin nhắn thử nghiệm của tôi"; msg.Body = "Xin chào bạn của tôi! Hãy tưởng tượng rằng tôi vừa viết một chương trình đáng kinh ngạc để gửi bức thư vô nghĩa này cho bạn một tỷ lần chỉ bằng vài cú nhấp chuột!"; msg.SubjectEncoding = Encoding.UTF8; msg.BodyEncoding = Encoding.UTF8; // thông điệp ưu tiên.Priority = MailPriority.High; // nội dung email bằng html? msg.IsBodyHtml = false; client.Credentials = new NetworkCredential("đăng nhập", "mật khẩu"); client.Send(tin nhắn);
Đó là tất cả. Đừng quên điền chính xác tất cả các thông tin được yêu cầu.
Bình luận ()
ruslang02 30
CoolHacker, tôi có thể mượn đoạn mã này của bạn cho phần 3 của trình duyệt web không?
Coolhacker 770 ruslang02 30Cảm ơn bạn, tôi sẽ sử dụng nó để gửi liên kết qua e-mail
như trong FireFox
Một trong những chức năng phổ biến nhất trên trang web là mẫu đơn đăng ký hoặc đơn đặt hàng, dữ liệu từ đó sẽ được gửi qua email đến chủ sở hữu trang web. Theo quy định, các biểu mẫu như vậy rất đơn giản và bao gồm hai hoặc ba trường để nhập dữ liệu. Làm thế nào để tạo một mẫu đơn đặt hàng như vậy? Điều này đòi hỏi phải sử dụng ngôn ngữ đánh dấu HTML và ngôn ngữ lập trình PHP.
Bản thân ngôn ngữ đánh dấu HTML rất đơn giản; bạn chỉ cần tìm ra cách thức và vị trí đặt các thẻ nhất định. Với ngôn ngữ lập trình PHP, mọi thứ phức tạp hơn một chút.
Đối với một lập trình viên, việc tạo một biểu mẫu như vậy không khó, nhưng đối với một nhà thiết kế bố cục HTML, một số thao tác có vẻ khó khăn.
Tạo biểu mẫu gửi dữ liệu bằng html
Dòng đầu tiên sẽ như sau
Bây giờ chúng ta hãy đặt mọi thứ lại với nhau.
Bây giờ hãy đặt các trường trong biểu mẫu là bắt buộc. Chúng tôi có đoạn mã sau:
Tạo một tệp chấp nhận dữ liệu từ biểu mẫu HTML
Đây sẽ là một tập tin có tên send.php
Trong tệp, ở giai đoạn đầu tiên, bạn cần chấp nhận dữ liệu từ mảng bài đăng. Để làm điều này, chúng tôi tạo hai biến:
$fio = $_POST["fio"];
$email = $_POST["email"];
Tên biến trong PHP được đặt trước dấu $ và dấu chấm phẩy được đặt ở cuối mỗi dòng. $_POST là một mảng mà dữ liệu từ biểu mẫu được gửi vào. Ở dạng html, phương thức gửi được chỉ định là phương thức="post". Vì vậy, hai biến từ dạng html được chấp nhận. Để bảo vệ trang web của bạn, bạn cần chuyển các biến này qua một số bộ lọc - các hàm php.
Hàm đầu tiên sẽ chuyển đổi tất cả các ký tự mà người dùng sẽ cố gắng thêm vào biểu mẫu:
Trong trường hợp này, các biến mới không được tạo trong php mà sử dụng các biến hiện có. Những gì bộ lọc sẽ làm là chuyển đổi ký tự "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Hàm thứ hai giải mã url nếu người dùng cố gắng thêm nó vào biểu mẫu.
$fio = urldecode($fio);
$email = urldecode($email);
Với hàm thứ ba, chúng ta sẽ xóa khoảng trắng ở đầu và cuối dòng, nếu có:
$fio = cắt($fio);
$email = cắt($email);
Có các chức năng khác cho phép bạn lọc các biến php. Việc sử dụng chúng tùy thuộc vào mức độ lo ngại của bạn về việc kẻ tấn công sẽ cố gắng thêm mã chương trình vào biểu mẫu gửi email html này.
Xác thực dữ liệu được chuyển từ dạng HTML sang tệp PHP
Để kiểm tra xem mã này có hoạt động hay không và dữ liệu có được truyền hay không, bạn chỉ cần hiển thị nó trên màn hình bằng chức năng echo:
echo $fio;
tiếng vang "
";
tiếng vang $email;
Dòng thứ hai ở đây là cần thiết để tách đầu ra của các biến php thành các dòng khác nhau.
Gửi dữ liệu nhận được từ biểu mẫu HTML tới email bằng PHP
Để gửi dữ liệu qua email, bạn cần sử dụng hàm mail trong PHP.
mail("gửi đến địa chỉ nào", "chủ đề của bức thư", "Thư (nội dung của bức thư)","Từ: thư được gửi từ email nào \r\n");
Ví dụ: bạn cần gửi dữ liệu đến email của chủ sở hữu hoặc người quản lý trang web [email được bảo vệ].
Chủ đề của bức thư phải rõ ràng và nội dung của bức thư phải chứa những gì người dùng chỉ định trong biểu mẫu HTML.
thư(" [email được bảo vệ]", "Ứng dụng từ trang web", "Tên đầy đủ:".$fio.". E-mail: ".$email ,"Từ: [email được bảo vệ]\r\n");
Cần phải thêm một điều kiện để kiểm tra xem biểu mẫu có được gửi bằng PHP đến địa chỉ email được chỉ định hay không.
nếu (thư(" [email được bảo vệ]", "Đặt hàng từ trang web", "Tên đầy đủ:".$fio.". E-mail: ".$email ,"Từ: [email được bảo vệ]\r\n"))
{
echo "tin nhắn đã được gửi thành công";
) khác (
}
Do đó, mã chương trình của tệp send.php, tệp này sẽ gửi dữ liệu biểu mẫu HTML tới email, sẽ trông như thế này:
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = cắt($fio);
$email = cắt($email);
// tiếng vang $fio;
// tiếng vang "
";
// tiếng vang $email;
nếu (thư(" [email được bảo vệ]", "Ứng dụng từ trang web", "Tên đầy đủ:".$fio.". E-mail: ".$email ,"Từ: [email được bảo vệ]\r\n"))
( echo "tin nhắn đã được gửi thành công";
) khác (
echo "xảy ra lỗi khi gửi tin nhắn";
}?>
Ba dòng để kiểm tra xem dữ liệu có đang được chuyển vào tệp hay không sẽ được nhận xét. Nếu cần, chúng có thể được gỡ bỏ vì chúng chỉ cần thiết để gỡ lỗi.
Chúng tôi đặt mã HTML và PHP để gửi biểu mẫu trong một tệp
Trong phần bình luận cho bài viết này, nhiều người đặt câu hỏi làm thế nào để đảm bảo rằng cả biểu mẫu HTML và mã PHP để gửi dữ liệu tới email đều nằm trong một tệp chứ không phải hai tệp.
Để thực hiện công việc này, bạn cần đặt mã HTML của biểu mẫu vào tệp send.php và thêm một điều kiện sẽ kiểm tra sự hiện diện của các biến trong mảng POST (mảng này được gửi từ biểu mẫu). Nghĩa là, nếu các biến trong mảng không tồn tại thì bạn cần hiển thị cho người dùng biểu mẫu. Ngược lại, bạn cần nhận dữ liệu từ mảng và gửi đến người nhận.
Hãy xem cách thay đổi mã PHP trong tệp send.php:
//kiểm tra xem các biến có tồn tại trong mảng POST không
if(!isset($_POST["fio"]) và !isset($_POST["email"]))(
?> ) khác (
//hiển thị biểu mẫu
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = cắt($fio);
$email = cắt($email);
nếu (thư(" [email được bảo vệ]", "Ứng dụng từ trang web", "Tên đầy đủ:".$fio.". E-mail: ".$email ,"Từ: [email được bảo vệ]\r\n"))(
echo "Tin nhắn đã được gửi thành công";
) khác (
echo "Đã xảy ra lỗi khi gửi tin nhắn";
}
}
?>
Chúng ta kiểm tra sự tồn tại của một biến trong mảng POST bằng hàm PHP isset(). Dấu chấm than trước hàm này trong điều kiện có nghĩa là phủ định. Nghĩa là, nếu biến không tồn tại thì chúng ta cần hiển thị biểu mẫu của mình. Nếu tôi không đặt dấu chấm than thì điều kiện đó sẽ có nghĩa đen là “nếu tồn tại thì hiển thị biểu mẫu”. Và điều này là sai trong trường hợp của chúng tôi. Đương nhiên, bạn có thể đổi tên nó thành index.php. Nếu đổi tên file đừng quên đổi tên tên file ở dòng