宁泽林_NiZerin - 互联网技术博客

  • PHP
  • Go
  • Java
  • Rust
  • Python
  • 交流群
  • 关于我
  • 留言版
  1. 首页
  2. PHP
  3. 正文

php如何发送电子邮件?使用PHPMailer实现

2018年11月7日 3855点热度 0人点赞 0条评论

php如何发送电子邮件?本篇文章给大家介绍使用PHPMailer+SMTP实现发送电子邮件的方法,让大家了解如何配置和使用PHPMailer 。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
PHPMailer是一个流行的PHP邮件发送库。它支持通过mail()函数或SMTP发送邮件。简而言之,PHPMailer是一种在基于PHP的环境中发送电子邮件的有效方法。
下面我们来看看
第1步 - 收集PHPMailer的详细信息
要将PHPMailer与Hostinger SMTP一起使用,首先需要创建一个电子邮件帐户。您可以在Web主机面板的“ 电子邮件帐户” 部分执行此操作 。
1.png
完成后,抓住位于同一部分的SMTP详细信息:
2.png
你现在应该有四种部分,它们是:
1、电邮帐户用户名
2、电邮帐户密码
3、SMTP主机
4、SMTP端口
第2步 - 安装PHPMailer
由于我们拥有所有必需的详细信息,因此我们可以开始PHPMailer设置。一种简单的方法是使用Composer。它已预先安装在我们的共享主机方案中,因此您只需通过SSH连接并执行以下命令:

1

cd public_html

然后运行:

1

composer require phpmailer/phpmailer

稍等片刻,安装完成,PHPMailer将出现在新创建的目录中。
第3步 - 了解PHPMailer
要了解PHPMailer及其工作原理,让我们研究一下使用SMTP进行传递的示例。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<?php

use PHPMailer\PHPMailer\PHPMailer;

require '../vendor/autoload.php';

$mail = new PHPMailer;

$mail->isSMTP();

$mail->SMTPDebug = 2;

$mail->Host = 'mx1.hostinger.com';

$mail->Port = 587;

$mail->SMTPAuth = true;

$mail->Username = '[email protected]';

$mail->Password = 'EMAIL_ACCOUNT_PASSWORD';

$mail->setFrom('[email protected]', 'Your Name');

$mail->addReplyTo('[email protected]', 'Your Name');

$mail->addAddress('[email protected]', 'Receiver Name');

$mail->Subject = 'PHPMailer SMTP message';

$mail->msgHTML(file_get_contents('message.html'), __DIR__);

$mail->AltBody = 'This is a plain text message body';

$mail->addAttachment('test.txt');

if (!$mail->send()) {

    echo 'Mailer 错误: ' . $mail->ErrorInfo;

} else {

    echo '发送消息!';

}

?>

让我们看看每个组件的作用:
4.jpg
专业提示:
SMTPDebug = 2; 在测试脚本并查看脚本的工作原理时非常有用。
将其设置为SMTPDebug = 0; 在最终版本中,以避免最终用户看到SMTP传递报告。
如果您检查了整个代码,您会注意到我们正在做的事情与第一个示例中的有些不同。我们正在发送HTML消息。它的内容将取自位于同一目录中的message.html 文件。与纯文本消息相比,这使您可以格式化文本并提供更多功能。
第4步 - 运行PHPMailer脚本
让我们创建一个testphpmailer.php文件,并使用我们之前检索到的SMTP详细信息填写所有字段。通过 在浏览器中输入YourDomain.com/testphpmailer.php来执行脚本 ,您将看到类似的消息:
4.png
第5步 - PHPMailer联系表单示例
您可以使用PHPMailer,而不仅仅是发送简单的消息。您可以利用它的一种方法是创建一个联系表单,您的访问者或用户可以与您联系。以下是此类脚本的基本示例:

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

<?php

use PHPMailer\PHPMailer\PHPMailer;

require '../vendor/autoload.php';

    $mail = new PHPMailer;

    $mail->isSMTP();

    $mail->Host = 'mx1.hostinger.com';

    $mail->Port = 587;

    $mail->SMTPAuth = true;

    $mail->Username = '[email protected]';

    $mail->Password = 'EMAIL_ACCOUNT_PASSWORD';

    $mail->setFrom('[email protected]', 'Mr. Drago');

    $mail->addAddress('[email protected]', 'Receiver Name');

if ($mail->addReplyTo($_POST['email'], $_POST['name'])) {

        $mail->Subject = 'PHPMailer contact form';

        $mail->isHTML(false);

        $mail->Body = <<<EOT

Email: {$_POST['email']}

Name: {$_POST['name']}

Message: {$_POST['message']}

EOT;

if (!$mail->send()) {

            $msg = '对不起,出了点问题。请稍后再试。';

} else {

            $msg = '发送消息成功!谢谢您联络我们。';

}

} else {

        $msg = '电子邮件地址无效,邮件被忽略。';

}

?>

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>邮件表单</title>

</head>

<body>

<h1>Let's get in touch!</h1>

<?php if (!empty($msg)) {

    echo "<h2>$msg</h2>";

} ?>

<form method="POST">

    <label for="name">名称: <input type="text" name="name" id="name"></label><br><br>

    <label for="email">电子邮件: <input type="email" name="email" id="email"></label><br><br>

    <label for="message">消息:<textarea name="message" id="message" rows="8" cols="20"></textarea></label><br><br>

    <input type="submit" value="发送">

</form>

</body>

</html>

最终结果是:
5.png
一旦用户提交了他的消息,他将得到确认,内容将到达addAddress 字段中输入的电子邮箱 。
专业提示:如果PHPMailer联系表单不起作用,请添加以下行以查看导致该问题的原因: $ mail-> SMTPDebug = 2;
一旦完成,不要忘记将其删除或设置为零!
以上就是php如何发送电子邮件?使用PHPMailer实现的详细内容,更多请关注泽林博客其它相关文章!
 

转载:php中文网

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: php
最后更新:2018年11月7日

NiZerin

博主已经躺平了,后面很少会更新博客。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

分类
  • Angular
  • CSS3
  • docker
  • Flutter
  • git
  • Go
  • H5
  • Java
  • JavaScript
  • Laravel
  • linux
  • Node.js
  • PHP
  • Python
  • React
  • redis
  • Vue.js
  • windows
  • WordPress
  • 交流
  • 小程序
  • 工具
  • 网站公告
标签聚合
translations vue wordpress php flutter javascript go laravel
友情链接
  • PHP函数字典
  • 宝塔运维特惠
  • 科学上网
  • 阿里云特惠

COPYRIGHT © 2021 nizer.in. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang