设为首页 收藏本站
查看: 517|回复: 0

[经验分享] 关于PHP邮件发送

[复制链接]

尚未签到

发表于 2015-8-28 05:04:43 | 显示全部楼层 |阅读模式
  初学PHP一段时间,发现PHP比J2EE框架简单很多,同JAVA相比,它是一门极弱的语言,类似于Javascript.PHP不仅在语法上较JAVA来的简单的多,同时其本身还提供了很多开源的框架,J2EE虽然本身也有经典级(JSF+EJB+JPA)和轻量级(STRUCTS+SPRING+HIBERNATE)两种类型框架,为开发者提供了很多便利,但其也带来了很多劣势,比如经典级框架同轻量级框架同时都存在着配置环境复杂,很多初学的人往往会被环境配置弄得头晕而放弃了对框架的兴趣,还有框架由于是被别人已经写好了的,所以其灵活性肯定不如自己写来的灵活。比如Structs提供的上传表单同Action数据banding,其只适用于表单中只有一个submit的情况,如果有多个submit还是得通过javascript来控制,所以一般有经验的开发者不经常使用Structs本身的标签以及action banding。
  今天研究了一下php发送邮件,在W3C中对于PHP的讲解中关于email的部分内容较少,其是通过自身的email()函数来实现邮件发送,这种方式虽然只需要通过简单的语句便可以实现,如下:



$to = "heartchaincxj@163.com";
$subject = "Test";
$message = "This is a test mail!";
ini_set('SMTP','smtp.163.com');
ini_set('smtp_port',25);
ini_set('sendmail_from',"sinllychenfjnp@163.com"
mail($to,$subject,$message);
  当然也可以将



ini_set('SMTP','smtp.163.com');
ini_set('smtp_port',25);
ini_set('sendmail_from',sinllychenfjnp@163.com);
  通过配置php.ini.但这样运行之后会出现如下错误:SMTP server response:553 authentication is required,smtp2,DNGowKD7v5BTDo9NnplVBA--.1171S21301220947.错误的原因是说SMTP服务器需要验证信息,百度了一下发现很多人出现了类似的问题,究其原因是因为mail()函数使用需要一台无需SMTP验证就可以发信的邮件服务器。这种方式对服务器本身做了一些限制,不太适合开发。
  对于PHP发送邮件实现,普遍使用的是通过第三方的框架PHPMailer来实现。PHPMailer是一个开源的PHP发送邮件的框架,由一个外国人编写。在PHP邮件发送上非常好用,无需SMTP服务器也无需在PHP.ini文件里面配置信息。PHPMailer可以到http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list下载。解压之后,我们将class.phpmailer.php,class.pop3.php,class.smtp.php.放到当前工程路径下面,这里我通过封装一个方法来实现发送邮件的功能。代码如下:



function sendmail($to,$subject = "",$body = ""){
    //$to 表示收件人地址 $subject 表示邮件标题 $body表示邮件正文
    date_default_timezone_set("Asia/Shanghai");//设定时区东八区
require_once('class.phpmailer.php');
include("class.smtp.php");
$mail             = new PHPMailer(); //new一个PHPMailer对象出来
$body             = eregi_replace("[\]",'',$body); //对邮件内容进行必要的过滤
$mail->CharSet ="UTF-8";//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->IsSMTP(); // 设定使用SMTP服务
$mail->SMTPDebug  = 1;                     // 启用SMTP调试功能
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能
$mail->SMTPSecure = "ssl";                 // 安全协议
$mail->Host       = "smtp.163.com";      // SMTP 服务器
$mail->Port       = 465;                   // SMTP服务器的端口号
$mail->Username   = "sinllychenfjnp";  // SMTP服务器用户名
$mail->Password   = "123456";            // SMTP服务器密码
$mail->SetFrom('sinllychenfjnp@163.com', 'sinllychen');
$mail->AddReplyTo("邮件回复地址,如admin#jiucool.com #换成@","邮件回复人的名称");
$mail->Subject    = $subject;
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer! - From www.jiucool.com"; // optional, comment out and test
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, "收件人名称");
//$mail->AddAttachment("images/phpmailer.gif");      // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!恭喜,邮件发送成功!";
}
}
  在正文中我只需要通过



sendmail($to,$subject,$content);
  便可以成功发送邮件。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105143-1-1.html 上篇帖子: php中'mysqli not found'错误的解决方法 下篇帖子: 函数:PHP将字符串从GBK转换为UTF8字符集iconv
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表