>  기사  >  백엔드 개발  >  첨부파일이 있는 이메일을 보내는 PHP 클래스

첨부파일이 있는 이메일을 보내는 PHP 클래스

WBOY
WBOY원래의
2016-07-25 08:55:23864검색
  1. /**
  2. * 첨부 파일이 포함된 이메일 보내기
  3. * by bbs.it-home.org
  4. */
  5. class CMailFile {
  6. var $subject;
  7. var $addr_to;
  8. var $text_body;
  9. var $text_encoded;
  10. var $mime_headers;
  11. var $mime_boundary = "--==================_846811060==_";
  12. var $smtp_headers;
  13. function CMailFile($subject,$to,$from,$msg,$filename,$downfilename,$mimetype = "application/octet-stream",$mime_filename = false) {
  14. $this- >주제 = $주제;
  15. $this->addr_to = $to;
  16. $this->smtp_headers = $this->write_smtpheaders($from);
  17. $this->text_body = $this->write_body($msg);
  18. $this->text_encoded = $this->attach_file($filename,$downfilename,$mimetype,$mime_filename);
  19. $this->mime_headers = $this->write_mimeheaders($filename, $mime_filename);
  20. }
  21. function attachment_file($filename,$downfilename,$mimetype,$mime_filename) {
  22. $encoded = $this->encode_file($filename);
  23. if ($mime_filename) $filename = $mime_filename;
  24. $out = "--" . $this->mime_boundary . "N";
  25. $out = $out . "콘텐츠 유형: " . $마임타입 . "; name="$filename";n";
  26. $out = $out . "콘텐츠 전송 인코딩: base64n";
  27. $out = $out . "콘텐츠 처리: 첨부 파일; filename="$downfilename"nn";
  28. $out = $out . $인코딩됨 . "N";
  29. $out = $out . "--" . $this->mime_boundary . "--" . "N";
  30. $out을 반환합니다.
  31. }
  32. function encode_file($sourcefile) {
  33. if (is_readable($sourcefile)) {
  34. $fd = fopen($sourcefile, "r");
  35. $contents = fread($fd, filesize($sourcefile));
  36. $encoded = Chunk_split(base64_encode($contents));
  37. fclose($fd);
  38. }
  39. $인코딩된 값을 반환합니다.
  40. }
  41. function sendfile() {
  42. $headers = $this->smtp_headers . $this->mime_headers;
  43. $message = $this->text_body . $this->text_encoded;
  44. mail($this->addr_to,$this->제목,$message,$headers);
  45. }
  46. function write_body($msgtext) {
  47. $out = "--" . $this->mime_boundary . "N";
  48. $out = $out . "콘텐츠 유형: 텍스트/일반; charset="us-ascii"nn";
  49. $out = $out . $msg텍스트 . "N";
  50. $out을 반환합니다.
  51. }
  52. function write_mimeheaders($filename, $mime_filename) {
  53. if ($mime_filename) $filename = $mime_filename;
  54. $out = "MIME 버전: 1.0n";
  55. $out = $out . "콘텐츠 유형: 다중 부분/혼합; ";
  56. $out = $out . "boundary="$this->mime_boundary"n";
  57. $out = $out . "콘텐츠 전송 인코딩: 7BITn";
  58. $out = $out . "X-첨부 파일: $filename;nn";
  59. $out을 반환합니다.
  60. }
  61. function write_smtpheaders($addr_from) {
  62. $out = "From: $addr_fromn";
  63. $out = $out . "답장: $addr_fromn";
  64. $out = $out . "X-메일러: PHP3n";
  65. $out = $out . "X-발신자: $addr_fromn";
  66. $out을 반환합니다.
  67. }
  68. }
  69. /*사용법 - 例如:mimetype 为 "image/gif"
  70. $mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename ,$mimetype);
  71. $mailfile->sendfile();
  72. $subject -- 主题
  73. $sendto -- 收信人地址
  74. $replyto -- 回复地址
  75. $message -- 信件内容
  76. $filename -- 附件文件name
  77. $downfilename -- 下載的文件name
  78. $mimetype -- mime类型
  79. */
  80. ?>
제제대码

2, 데모 예시 데모.php

  1. require_once('emailclass.php')
  2. //이메일 보내기
  3. //제목
  4. $subject = "이메일 보내기 테스트";
  5. //수신자
  6. $sendto = 'abc@163.com';
  7. //이메일 보내기
  8. $replyto = 'cdf@163.com';
  9. //콘텐츠
  10. $message = "이메일 콘텐츠 보내기 테스트"
  11. //첨부파일
  12. $ filename = 'test.jpg';
  13. //첨부파일 카테고리
  14. $mimetype = "image/jpeg";
  15. $mailfile = new CMailFile($subject,$sendto,$ replyto ,$ message,$filename,$excelname,$mimetype)
  16. $mailfile->sendfile()
  17. ?>
코드 복사

>>> 관심을 가질 만한 기사: php 소켓은 smtp를 사용하여 첨부 파일이 포함된 이메일을 보냅니다 Php의 IMAP 애플리케이션 예(이메일 보내기 및 받기, 이메일 삭제, 첨부 파일 다운로드) 첨부 파일이 포함된 이메일을 보내는 PHPMailer의 예 PHPMailer에서 보낸 이메일의 중국어 첨부 파일 이름이 왜곡된 문제에 대한 해결 방법



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.