php 读取邮件内容,PHP Mail:使用纯文本和HTML格式发送Email(多部分消息)
使用PHP Mail发送邮件,可以选择纯文本格式或者HTML格式,HTML格式更加吸引眼球因此应用越来越广泛,但使用HTML格式有一定的劣势[1],在发送HTML格式的邮件时最好同时发送纯文本格式,这样使用不支持HTML的旧式电子邮件客户端的用户依然可以读取邮件内容。这里用到的方法叫多部分消息。
先看一段代码示例$to = 'xxxxx@gmail.com';
$from = 'Solagirl ';
$subject = 'Mail Subject';
$message = 'html content (with html tags)';
//定义边界,边界值尽可能唯一
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
//多部分消息的header声明与单一格式不同
$headers .= "MIME-Version: 1.0\n" . "Content-Type: multipart/alternative; boundary=\"{$mime_boundary}\"";
$headers .= "From: $from\n";
//多部分消息 - HTML版本
$mailbody = "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"utf-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
//多部分消息 - 纯文本版本
$mailbody .= "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"utf-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . strip_tags($message) . "\n\n";
//多部分消息结束
$mailbody .= "--{$mime_boundary}--";
mail($to, $subject, $message, $headers);
从上面的例子看出,要使用多部分消息发送电子邮件,header与发送单一格式邮件不同,需要声明发送的内容是multipart并定义边界(boundary)Content-Type: multipart/alternative; boundary="{$mime_boundary}"
这就告诉电子邮件客户端,应该在消息中查找额外的Content-type信息,其中包含边界信息。边界把消息分隔为多个部分,它以两个短横线(–)开头,并且位于消息的开头、各部分之间和消息的结尾。这个边界的内容并不重要,关键是尽可能使之唯一,所以它不可能是消息中重复的值,所以可以使用符号、数字和字母的任意组合,许多人选择使用rand()或md5()散列,这并不重要。使用什么方法完全取决于设计人员。[2]
如果使用PHPMailer发送邮件,只需要简单的代码就可以实现多部分消息,看下面代码段[3]$mail->Body = $body;
//$mail->AltBody存储纯文本版本
$mail->AltBody = strip_tags($body);
$mail->WordWrap = 50; // set word wrap
$mail->IsHTML(true);
$mail->MsgHTML($body);
$mail->Send();
[2] 《Web开发入门经典——使用PHP6、Apache和MySQL》第11章 – 发送电子邮件
php 读取邮件内容,PHP Mail:使用纯文本和HTML格式发送Email(多部分消息)相关推荐
- PHP使用imap读取邮件内容,2018可用
本文以QQ邮箱为例,已验证可以成功读取邮件内容,这里用到一个类,如下. <?php /**** @package Application* @author songhui@diaojia.com ...
- html邮件和纯文本邮件区别,邮件营销必读系列五--纯文本和HTML邮件类型——哪一种邮件类型更适合你?...
仍然会除去你的代码中的很多所谓的"冗余元素",所以,如果不符合邮件服务商的反垃圾邮件要求,无论你的邮件设计人员投入了多少时间,花费了多少精力,邮件设计得有多精美,最后收件人看到的可 ...
- python自动读取邮件_Python3读取邮件内容
登录邮箱并读取原始邮件 使用imaplib库实现邮箱登录,所以需要先导入库import imaplib,然后利用imaplib库中的方法登录邮箱并读取邮件 def get_mail(email_add ...
- python 读取邮件内容_Python 如何提取邮件内容
欢迎关注[无量测试之道]公众号,回复[领取资源], Python编程学习资源干货. Python+Appium框架APP的UI自动化. Python+Selenium框架Web的UI自动化. Pyth ...
- python 读取邮件内容_利用Python imaplib和email模块 读取邮件文本内容及附件内容...
python使用imap接收邮件的过程探索 https://www.cnblogs.com/yhlx/archive/2013/03/22/2975817.html #! encoding:utf8 ...
- python 读取邮件内容_python获取邮件内容(邮件内容为html)
用python获取邮件内容比较简单,直接用现成的imap和pop3包即可,但是有时候邮件的内容不是plainText而是html甚至是一个url链接,原本的操作流程是点击url获取内容(比如csv等等 ...
- java邮箱格式_JavaMail入门:创建纯文本、HTML格式的邮件
转自:http://haolloyin.blog.51cto.com/1177454/353849/ 在 http://java.sun.com/products/javamail/ 下载了 Java ...
- python自动定时读取outlook邮件内容
第一次实习,什么也不会,公司让写一个自动定时读取邮件的代码,只好自己去网上搜,踩了很多坑,现在终于弄好了,在这里记录一下,也希望能给需要的人一点帮助. 首先就是登陆邮箱并读取邮件,outlook的话一 ...
- python读取邮件标题_Python连载57- 邮件头和主题、解析邮件
一.添加邮件头,抄送等信息 1.mail["From"]表示发送者信息,包括姓名和邮件 2.mail["To"]表示接收者信息,包括姓名和邮件地址 3.mail ...
最新文章
- 2006上半年程序员级试题答案
- oracle中col 的用法,Oracle All
- 重复数据删除将成标配功能
- 【儿童成长心理学】第一章 引言
- linux64位ioremap函数,linux操作系统中的ioremap函数详解
- SDK Manager failed to install 'java.exe' locking directory
- sql数据库简单增删改查
- 软件构造学习笔记-第十二周
- java责任链模式审批请假_Java使用责任链模式处理学生请假问题详解
- java 责任链模式 链表_责任链模式的实现及源码中应用
- 05MySQL基本操作
- 搜索引擎的那些事(多线程web遍历)
- 【CodeForces - 707B】Bakery(思维水题)
- 常用图片jpg png jpeg gif等格式介绍
- xshell上传文件到linux很慢,XShell上传文件到Linux服务器上
- ITween操作API
- 【比赛题解】第十一届蓝桥杯青少组省赛(中级组)详细题解
- 我来告诉你,一个草根程序员如何进入BAT
- 第1章 微处理器、微型计算机、微型计算机系统的区别
- 小程序中时间计算(时、分、秒)
热门文章
- proxmox安装linux无法上网,Proxmox VE安装教程
- matlab 离散偏微分,有限差分法求解偏微分方程MATLAB.doc
- 调用百度api制作旅游轨迹图
- Python——读取raw格式文件
- 单片机(AT89C51)按钮控制LED灯实现流水灯,闪烁流水灯
- WordPress主题 大前端 阿里百秀 XIU 小清新CMS高级主题[更新v3.2]
- Linux 文件搜索神器 find 实战详解,建议收藏!
- 大一 JAVAOOP-T2 面向 对象 进阶- 实践任务指南(美和易思)
- 微机原理与接口技术 小题(河北专升本计算机)
- SQL Server 字段提取拼音首字母