본 글 주소
참고주소
개요 공유:
1. 개요
2. 이메일 보내기 코드 작성
3. 참고자료
1. 개요
이 기사에서는 이메일 클래스 라이브러리 PHPMailer를 사용하여 이메일을 보내는 방법에 대해 설명합니다.
프로젝트를 하다 보면 이메일 기능이 필요할 때가 많습니다. 실제로 PHP 언어 자체에는 이미 이메일을 보내는 메소드(mail() 메소드)가 있으며, 이 메소드가 구현하는 기능이 거의 없다는 점은 말할 것도 없습니다. mail() 메소드를 사용하여 이메일을 보내려면 다음을 구성해야 합니다. SMTP 서버 자체 방법은 다음과 같습니다. mail()을 사용하는 방법은 설명하지 않습니다(함수 호출은 실제로 매우 간단합니다). 따라서 두 번째 방법인 PHPMailer를 사용하는 것이 좋습니다.
2. 이메일 보내기 코드 작성
1) [PHP메일러 다운로드]
먼저 http://phpmailer.sourceforge.net/으로 이동하여 최신 PHPMailer 패키지를 다운로드합니다(PHPMailer 메소드는 현재 gitHub를 기반으로 하는 이 패키지를 사용해야 합니다).
압축된 패키지를 직접 다운로드할 수도 있습니다: https://github.com/wozhuzaisi/PHPMailer/archive/master.zip
2) [코드 구현]
다운로드 후 해당 디렉토리에 압축을 풀어주세요. 압축이 풀린 폴더에서 class.phpmailer.php를 볼 수 있습니다(PHPMailer를 호출하려면 이 파일을 포함해야 합니다)
샘플 코드:
<?<span style="color: #000000;">php </span><span style="color: #008000;">//</span><span style="color: #008000;">1.【下载地址】PHPMailer下载地址:https://github.com/wozhuzaisi/PHPMailer/archive/master.zip //2.【邮箱配置SMTP】本文实现的是 smtp协议的163邮箱发送。其他邮箱和协议请参考: http://blog.wpjam.com/m/gmail-qmail-163mail-imap-smtp-pop3/ //3.【文本编码】请保证 utf-8的文本编码,否则邮件会出现乱码 //4.【运行方式】 直接调用 smtp_mail()函数即可 //测试邮件 // 参数说明(收件人邮箱地址, 收件人姓名, 邮件主题, 邮件内容, 附加信息, 发送人用户名) </span> smtp_mail("receiveUser@haodf.com", 'receiveUserName', "【标题】12.01 测试邮件", "【内容】测试邮件", "", <span style="color: #800080;">$fromUsername</span>="邮件发送人"<span style="color: #000000;">); </span><span style="color: #0000ff;">echo</span> "<br>end<br>"<span style="color: #000000;"> ; </span><span style="color: #0000ff;">function</span> smtp_mail( <span style="color: #800080;">$receiveEmailAddress</span>, <span style="color: #800080;">$receiveUserName</span>, <span style="color: #800080;">$subject</span>, <span style="color: #800080;">$body</span>, <span style="color: #800080;">$extraHdrs</span>='', <span style="color: #800080;">$fromUsername</span><span style="color: #000000;">){ </span><span style="color: #800080;">$path</span> = 'PHPMailer-master/'<span style="color: #000000;">; </span><span style="color: #0000ff;">require_once</span>(<span style="color: #800080;">$path</span>."class.smtp.php"<span style="color: #000000;">); </span><span style="color: #0000ff;">require</span>(<span style="color: #800080;">$path</span>."class.phpmailer.php"<span style="color: #000000;">); </span><span style="color: #800080;">$mail</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> PHPMailer(); </span><span style="color: #800080;">$mail</span>->IsSMTP(); <span style="color: #008000;">//</span><span style="color: #008000;"> send via SMTP //这里使用 163邮箱</span> <span style="color: #800080;">$mail</span>->Host = "smtp.163.com"; <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP servers </span> <span style="color: #800080;">$mail</span>->SMTPAuth = <span style="color: #0000ff;">true</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> turn on SMTP authentication </span> <span style="color: #800080;">$mail</span>->Username = "yourEmailUserName"; <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP username 注意:普通邮件认证不需要加 @域名 这里是我的163邮箱</span> <span style="color: #800080;">$mail</span>->Password = "yourEmailPassWord"; <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP password 在这里输入邮箱的密码</span> <span style="color: #800080;">$mail</span>->From = <span style="color: #800080;">$fromMailAddress</span> = "yourName@163.com"; <span style="color: #008000;">//</span><span style="color: #008000;"> 发件人邮箱 </span> <span style="color: #800080;">$mail</span>->FromName = <span style="color: #800080;">$fromUsername</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 发件人 </span> <span style="color: #800080;">$mail</span>->CharSet = "UTF-8"; <span style="color: #008000;">//</span><span style="color: #008000;"> 这里指定字符集! 指定UTF-8后邮件的标题和发件人等等不会乱码,如果是GB2312标题会乱码</span> <span style="color: #800080;">$mail</span>->Encoding = "base64"<span style="color: #000000;">; </span><span style="color: #800080;">$mail</span>->AddAddress(<span style="color: #800080;">$receiveEmailAddress</span>, <span style="color: #800080;">$receiveUserName</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> 收件人邮箱和姓名 </span> <span style="color: #800080;">$mail</span>->AddReplyTo(<span style="color: #800080;">$fromMailAddress</span>, <span style="color: #800080;">$fromUsername</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;">$mail->WordWrap = 50; // set word wrap 换行字数 //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件 //$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); //$mail->IsHTML(true); // send as HTML // 邮件主题 </span> <span style="color: #800080;">$mail</span>->Subject = <span style="color: #800080;">$subject</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;"> 邮件内容 </span> <span style="color: #800080;">$mail</span>->Body = <span style="color: #800080;">$body</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">$mail->AltBody ="text/html"; </span> <span style="color: #0000ff;">if</span>(!<span style="color: #800080;">$mail</span>-><span style="color: #000000;">Send()) { </span><span style="color: #0000ff;">echo</span> "error <p>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "error: " . <span style="color: #800080;">$mail</span>-><span style="color: #000000;">ErrorInfo; </span><span style="color: #0000ff;">exit</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { </span><span style="color: #0000ff;">echo</span>"success!"<span style="color: #000000;">; } } </span>
그렇습니다. 비판과 수정은 환영합니다
3. 참고자료
1) PHPMailer를 사용하여 이메일 보내기
2) PHP 이메일 보내기(PHPMailer) - FTD2012 - 블로그 가든