php使用linux 发送邮件

第一种方法:
使用 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\ [email protected]',$retval);

  • -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" [email protected] < 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."?="; 

你可能感兴趣的:(php,php,开发语言)