kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

PHPMailer 发送邮件

使用 PHP 自带 mail

https://www.php.net/manual/zh/function.mail.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function testEmail()
{
	$to = "1@qq.com";
	$subject = "test email";
	$message = "test email msg";
	$headers = array(
		'From' => '2@qq.cn'
	);

	if (mail($to, $subject, $message, $headers)) {
		echo "send ok";
	} else {
		echo "send fail";
	}
}

使用 PHPMailer

https://www.php.cn/faq/545800.html

PHPMailer的安装和配置

使用PHPMailer库前,需要先将其安装到项目中。在命令行中切换到你项目的根目录下,运行下面的命令进行安装:

1
composer require phpmailer

安装完毕后,我们需要在项目中引用PHPMailer类文件。在代码中添加以下语句:

1
2
3
4
require_once "tools/composer/vendor/autoload.php";

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;

在以上示例中,我们使用了isSMTP()方法将SMTP协议开启,使用了SMTPDebug调试模式输出SMTP交互信息,设置了SMTP服务器地址、用户名和密码等信息,设置了发件人和收件人的邮箱地址和名称,设置了邮件主题和正文,同时还设置了纯文本形式的邮件正文。

PHPMailer发送附件邮件

发送带附件的邮件,我们需要使用PHPMailer类的addAttachment()方法添加附件。下面我们将举一个例子来演示如何实现加入附件的邮件发送。

1
$mail->addAttachment('path/to/file.pdf');

样例

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
// 不认证
public function testEmail2()
{
	$mail = new PHPMailer();
	$mail->isSMTP();
	$mail->Host = '192.168.100.41';
	$mail->Port = 25;

	$mail->setFrom('2@qq.cn', 'secure');
	$mail->addAddress('1@qq.com', 'kk');
	$mail->Subject = 'Email Subject';
	$mail->Body = 'Email Body';
	$mail->AltBody = 'Email Body in Plain Text';

//    $mail->addAttachment('path/to/file.pdf');

	if(!$mail->send()) {
		echo "error " . $mail->ErrorInfo;
	} else {
		echo "ok";
	}
}

// SASL 认证
public function testEmail3()
{
	$mail = new PHPMailer();
	$mail->isSMTP();
	$mail->Host = '192.168.100.41';
	$mail->Port = 25;
// TODO tls ?
//    $mail->Port = 587;
//    $mail->SMTPSecure = 'tls';

// user 1
	$mail->SMTPAuth = true;
	$mail->Username = '3@qq.cn';
	$mail->Password = '123456';

	$mail->setFrom('2@qq.cn', 'secure');
	$mail->addAddress('1@qq.com', 'kk');
	$mail->Subject = 'Email Subject';
	$mail->Body = 'Email Body';
	$mail->AltBody = 'Email Body in Plain Text';

//    $mail->addAttachment('path/to/file.pdf');

	if(!$mail->send()) {
		echo "error " . $mail->ErrorInfo;
	} else {
		echo "ok";
	}
}

language, php

« Excel 的列与数字转换 crontab不再发出告警邮件 »