Heim  >  Artikel  >  Backend-Entwicklung  >  PHP邮件发送类PHPMailer用法实例详解_PHP教程

PHP邮件发送类PHPMailer用法实例详解_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:18:39924Durchsuche

PHP邮件发送类PHPMailer用法实例详解

 本文实例讲述了PHP邮件发送类PHPMailer用法,并详细讲述了其具体的操作步骤。分享给大家供大家参考。具体步骤如下:

1.在服务器安装 sendmail

1

sudo apt-get install sendmail

2.启动 sendmail

1

sudo /etc/init.d/sendmail start

3.修改 php.ini

1

2

3

4

[mail function] 

SMTP = localhost 

smtp_port = 25 

sendmail_from = me@example.com

4.Function sendMail函数如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

/* 调用PHPMailer发送电邮 

* @param String $receiver   收件人 

* @param String $sender    发件人 

* @param String $sender_name 发件人名称如为空则用发件人地址代替 

* @param String $subject   邮件主题 

* @param String $content   邮件内容 

* @param boolean $ishtml    是否html电邮 

* @param Array  $attachements 附件 

* @return boolean 

*/ 

function sendMail($receiver, $sender, $sender_name, $subject, $content, $ishtml=true, $attachments=array()) { 

  include_once "class-phpmailer.php";  

   

  if(empty($receiver) || empty($sender) || empty($subject) || empty($content)){ 

    return false; 

  } 

     

  $mail = new PHPMailer();  

   

  //$mail->IsSMTP();        // 经smtp发送  

  //$mail->Host = "smtp.gmail.com"; // SMTP 服务器 

  //$mail->Port = 465;       // SMTP 端口 

  //$mail->SMTPSecure = 'ssl';   // 加密方式 

  //$mail->SMTPAuth = true;     // 打开SMTP认证 

  //$mail->Username = "username";  // 用户名 

  //$mail->Password = "password";  // 密码 

   

  $mail->IsMail();         // using PHP mail() function 有可能會出現這封郵件可能不是由以下使用者所傳送的提示 

         

  $mail->From = $sender;      // 发信人  

  $mail->FromName = $sender_name;  // 发信人别名  

  $mail->AddReplyTo($sender);    // 回覆人 

  $mail->AddAddress($receiver);   // 收信人  

   

  // 以html方式发送 

  if($ishtml){ 

    $mail->IsHTML(true); 

  } 

   

  // 发送附件 

  if($attachments){ 

    if(is_array($attachments)){ 

      $send_attachments = array(); 

   

      $tmp_attachments = array_slice($attachments,0,1); 

      if(!is_array(array_pop($tmp_attachments))){ 

        if(isset($attachments['path'])){ 

          array_push($send_attachments, $attachments);           

        }else{ 

          foreach($attachments as $attachment){ 

            array_push($send_attachments, array('path'=>$attachment)); 

          } 

        } 

      }else{ 

        $send_attachments = $attachments; 

      } 

   

      foreach($send_attachments as $attachment){ 

        $attachment['name'] = isset($attachment['name'])? $attachment['name'] : null; 

        $attachment['encoding'] = isset($attachment['encoding'])? $attachment['encoding'] : 'base64'; 

        $attachment['type'] = isset($attachment['type'])? $attachment['type'] : 'application/octet-stream'; 

        if(isset($attachment['path']) && file_exists($attachment['path'])){ 

          $mail->AddAttachment($attachment['path'],$attachment['name'],$attachment['encoding'],$attachment['type']); 

        } 

      } 

    }elseif(is_string($attachments)){ 

      if(file_exists($attachments)){ 

        $mail->AddAttachment($attachments); 

      } 

    } 

  } 

   

  $mail->Subject = $subject; // 邮件标题 

  $mail->Body   = $content; // 邮件內容 

  return $mail->Send();  

   

// DEMO示例如下: 

$receiver = 'receiver@test.com'; 

$sender = 'sender@test.com'; 

$sender_name = 'sender name'; 

$subject = 'subjecct'; 

$content = 'content'; 

   

// 四种格式都可以 

$attachments = 'attachment1.jpg'; 

$attachments = array('path'=>'attachment1.jpg', 'name'=>'附件1.jpg'); 

$attachments = array('attachment1.jpg','attachment2.jpg','attachment3.jpg'); 

$attachments = array( 

  array('path'=>'attachment1.jpg', 'name'=>'附件1.jpg'), 

  array('path'=>'attachment2.jpg', 'name'=>'附件2.jpg'), 

  array('path'=>'attachment3.jpg', 'name'=>'附件3.jpg'), 

); 

$flag = sendMail($receiver, $sender, $sender_name, $subject, $content, true, $attachments); 

echo $flag; 

?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/882706.htmlTechArticlePHP邮件发送类PHPMailer用法实例详解 本文实例讲述了PHP邮件发送类PHPMailer用法,并详细讲述了其具体的操作步骤。分享给大家供大家参考。具...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn