php简单实现发送带附件的邮件
程序员文章站
2022-07-08 19:32:18
本文实例讲述了php简单实现发送带附件的邮件。分享给大家供大家参考。具体如下:
下面是静态html代码:
...
本文实例讲述了php简单实现发送带附件的邮件。分享给大家供大家参考。具体如下:
下面是静态html代码:
<html> <head> <title>带附件的邮件发送</title> </head> <body> <form method="post" name="form1" action="sendmail.php" enctype="multipart/form-data"> <table> <tr> <td>发送人:</td> <td><input type="text" name="from"></td> </tr> <tr> <td>收件人:</td> <td><input type="text" name="to"></td> </tr> <tr> <td>邮件主题:</td> <td><input type="text" name="subject"></td> </tr> <tr> <td>邮件内容:</td> <td><textarea name="body"></textarea></td> </tr> <tr> <td>附件上传:</td> <td><input type="file" name="upload_file"></td> </tr> <tr> <td span=2> <input type="submit" value="提交"> <input type="reset" value="重置"> </td> </tr> </table> </form> </body> </html>
sendmail.php文件代码:
<?php //获得表单信息 $from = $_post['from']; $to = $_post['to']; $subject = $_post['subject']; $body = $_post['body']; // 定义分界线 $boundary = "345894369383"; //分界线是一串无规律的字符 //设置header $header = "content-type: multipart/mixed; boundary= $boundary/r/n"; $header .= "from:$from/r/n"; //获得上传文件的文件内容 $file = $_files['upload_file']['tmp_name']; //确定上传文件的mime类型 $mimetype = $_files['upload_file']['type']; //获得上传文件的文件名 $filename = $_files['upload_file']['name']; //读取上传文件 $fp = fopen($file, "r"); //打开文件 $read = fread($fp, filesize($file)); //读入文件 $read = base64_encode($read); //base64编码 $read = chunk_split($read); //切割字符串 //建立邮件的主体,分为邮件内容和附件内容两部分 $body = "--$boundary content-type: text/plain; charset=iso-8859-1 content-transfer-encoding: 8bit $body --$boundary content-type: $mimetype; name=$filename content-disposition: attachment; filename=$filename content-transfer-encoding: base64 $read --$boundary--"; //发送邮件 并输出是否发送成功的信息 if(mail($to, $subject,$body,$header)) { echo "信件发送成功"; } else { echo "信件发送失败"; } ?>
希望本文所述对大家的php程序设计有所帮助。
上一篇: java实现一个简单的数学表达式分析器(加减乘除和括号)
下一篇: Yii获取当前url和域名的方法