第一种方法:
使用 echo 发送邮件。
使用 echo 命令发送电子邮件,而无需进入邮件命令的交互模式。
编写电子邮件正文并将 echo 命令输出通过管道传输到 mail 命令。
语法为: echo "[email body]" | mail -s "[subject]" [recipient]
例:
$content = "哈哈哈哈哈哈";
$output= system('hostname | echo '.$content.' | mail -A ini/samples.txt -s "主题" -aFrom:Sender_name\
-s
可选:邮件- -A可选:邮件的附件
- -a可选:邮件header部分,包含发件人名,发件邮箱
-r
可选:指定发件人电子邮件地址-c
可选:指定要由抄送发送的电子邮件地址
通过抄送发送给多人时 → 一次指定一个项目作为选项-c
-b
可选:指定要通过密件抄送发送的电子邮件地址
通过密件抄送发送给多人时 → 一次指定一个项目作为选项-b
- mail 命令的最后一个参数:指定目标电子邮件地址
当通过发送给多个人时 收件人→ 指定以半角空格分隔的电子邮件地址
知道上面几个参数基本就够用了。
其中echo '.$content.' 是邮件的正文。
echo 命令获取字符串,管道 (|) 将字符串传递给 mail 命令。
第二种方法:
从文件发送电子邮件
mail 命令允许用户从现有文件提供电子邮件正文。
此选项可节省时间,并有助于发送大型消息,而无需在命令行中写入它们。
语法为: mail -s "[subject]" [recipient] < [file_path]
$output= system('hostname | mail -s "Subject1" xxxx@yahoo.co.jp < ini/resume_samples.txt',$retval);
该命令从指定文件中获取输入,并将其作为电子邮件正文发送。
从 shell 脚本或其他程序(例如用 Perl 或 PHP 编写的程序)调用 mail 命令时,提供文件的输入很有用。
第三种方法:
将邮件发送到多个收件人
若要将邮件发送给多个收件人,请在逗号分隔的列表中指定收件人列表。
语法为: mail -s "[subject]" [recipient1], [recipient2] <<< "[mail body]"
说明:
如果乱码的话,需要转码:
$senderName = base64_encode($senderName);
senderName = "=?UTF-8?B?".$senderName."?=";
来源地址:https://blog.csdn.net/stwood007/article/details/131166575