>  기사  >  백엔드 개발  >  PHP로 이메일을 보내는 방법

PHP로 이메일을 보내는 방법

肚皮会动
肚皮会动원래의
2017-11-14 13:57:256653검색

초보 PHP 개발자로서 저는 종종 다음과 같은 요청을 받습니다. 내 웹사이트에서 내 도메인 이름을 발신자 이메일 주소로 사용하여 자동으로 이메일을 보내는 방법을 추가해야 합니다. users , 알림 정보 등 다음은 QQ 사서함과 함께 PHP에서 PHPMailer를 사용하여 이메일 보내기

에 대한 소개입니다. PHPMailer 소개:

장점:

모든 플랫폼에서 실행 가능

SMTP 확인 지원

이메일을 보낼 때 여러 수신자, 참조 주소, 숨은 참조 주소 및 회신 주소를 지정하세요. 참고: 참조 및 숨은 참조 추가는 win 플랫폼의 SMTP 모드에서만 지원됩니다.

8비트, base64, 바이너리 및 인용 인쇄 가능을 포함한 여러 이메일 인코딩 지원

중복 SMTP 서버를 지원합니다. 즉, 기본 SMTP 서버 주소를 지정하거나 백업 SMTP 서버만 지정할 수 있습니다.

첨부 파일이 있는 이메일을 지원하고 이메일에 어떤 형식의 첨부 파일도 추가할 수 있습니다. 물론 서버에 충분한 대용량 주소가 있어야 합니다. 대역폭은

PHP의 헤더 기능을 통해 헤더 정보를 전송하는 것과 유사한 사용자 정의 이메일 헤더 정보를 지원합니다.
이메일 본문을 HTML 콘텐츠로 만든 다음 이메일 본문에 이미지를 삽입할 수 있습니다.
사진

유연한 디버그 지원

테스트되고 호환되는 SMTP 서버에는 Sendmail, qmail, Postfix, Imail, Exchange 등이 포함됩니다.

Get PHPMailer:

PHPMailer 프로젝트 주소: https://github.com/PHPMailer/PHPMailer git 명령을 사용하여 로컬에 복제하거나 전체 PHPMailer 코드 패키지를 얻으려면 프로젝트 페이지의 오른쪽 하단에 있는 "ZIP 다운로드"를 직접 클릭한 다음 로컬에서 압축을 푸세요.

1단계: QQ 사서함을 활성화하여 이메일 보내기

여기서 이메일을 보낼 수 있다고 어떻게 말하나요? 실제로 모든 사서함에서 이메일을 보낼 수 있지만 웹사이트에서 이메일을 보내려면 QQ 사서함을 설정해야 합니다. 현재 웹사이트가 제3자 클라이언트로 존재하기 때문입니다.

PHP로 이메일을 보내는 방법

1丶추후 발송을 위해 SMTP 서버를 사용할 예정이므로 처음 두 항목을 켜는 것이 좋습니다! 클릭하여 열면 다음 메시지가 표시됩니다.

PHP로 이메일을 보내는 방법

위 단계를 완료하면 먼저 인증 코드를 받을 수 있으며 나중에 사용할 수 있습니다. 두 항목을 열면 두 개의 인증 코드를 받으려면 마지막 인증 코드를 사용하세요. 또는 아래의 인증 코드 생성을 클릭하여 새 인증 코드를 받으세요. 최신 인증 코드여야 합니다!

2단계: PHP가 QQ 사서함을 사용하도록 활성화이메일을 보내려면

PHPMailer는 PHP의 소켓 확장 지원이 필요하며, PHPMailer는 QQ 도메인 이름 사서함에 연결할 때 SSL 암호화가 필요합니다. PHP도 openssl 지원이 필요합니다. phpinfo. 다음 두 항목이 있으면 사용할 수 있습니다. openssl 버전 번호에 대해 걱정하지 마십시오. 가상 호스트의 많은 PHP는 openssl 확장을 지원하지 않으므로 문제가 발생할 수 있습니다.

PHP로 이메일을 보내는 방법

3단계: PHPMailer에서 특정 처리 수행

우리가 다운로드한 PHPMailer 폴더에는 사용하지 않을 파일이 많기 때문에 이 메모리를 낭비할 필요가 없습니다. 이 폴더를 줄일 수 있습니다. 여기서는 class.phpmailer.php, class.phpmaileroauth.php, class.pop3.php, class.smtp.php, PHPMailerAutoload.php 파일만 저장합니다.

PHP로 이메일을 보내는 방법

4단계: 이메일을 보내는 코드 작성

여기서 공개 메소드(functions.php 파일에 작성됨)를 직접 캡슐화합니다.

/*发送邮件方法
 *@param $to:接收者 $title:标题 $content:邮件内容
 *@return bool true:发送成功 false:发送失败
 */function sendMail($to,$title,$content){    //引入PHPMailer的核心文件 使用require_once包含避免出现PHPMailer类重复定义的警告
    require_once("phpmailer/class.phpmailer.php"); 
    require_once("phpmailer/class.smtp.php");    //实例化PHPMailer核心类
    $mail = new PHPMailer();    //是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
    $mail->SMTPDebug = 1;    //使用smtp鉴权方式发送邮件
    $mail->isSMTP();    //smtp需要鉴权 这个必须是true
    $mail->SMTPAuth=true;    //链接qq域名邮箱的服务器地址
    $mail->Host = 'smtp.qq.com';    //设置使用ssl加密方式登录鉴权
    $mail->SMTPSecure = 'ssl';    //设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587
    $mail->Port = 465;    //设置smtp的helo消息头 这个可有可无 内容任意
    // $mail->Helo = 'Hello smtp.qq.com Server';

    //设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名
    $mail->Hostname = 'http://www.lsgogroup.com';    //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
    $mail->CharSet = 'UTF-8';    //设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名
    $mail->FromName = 'PHP中文网';    //smtp登录的账号 这里填入字符串格式的qq号即可
    $mail->Username ='12345678@qq.com';    //smtp登录的密码 使用生成的授权码(就刚才叫你保存的最新的授权码)
    $mail->Password = 'sqyofzbqlfkntbncl';    //设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
    $mail->From = '12345678@qq.com';    //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
    $mail->isHTML(true); 

    //设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
    $mail->addAddress($to,'lsgo在线通知');    //添加多个收件人 则多次调用方法即可
    // $mail->addAddress('xxx@163.com','lsgo在线通知');

    //添加该邮件的主题
    $mail->Subject = $title;    //添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件
    $mail->Body = $content;    //为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称
    // $mail->addAttachment('./d.jpg','mm.jpg');
    //同样该方法可以多次调用 上传多个附件
    // $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');

    $status = $mail->send();    //简单的判断与提示信息
    if($status) {        return true;
    }else{        return false;
    }
}

그런 다음 공개 메소드를 호출하여 이메일 보내기를 테스트할 수 있습니다

?php
require_once("./functions.php");
$flag = sendMail('456789@qq.com','在线通知','恭喜你成功加入PHP中文网!');
if($flag){    echo "发送邮件成功!";
}else{    echo "发送邮件失败!";
}
?>

위 내용은 PHPMailer 사용 방법입니다. 모든 분들께 도움이 되었으면 좋겠습니다.

관련 추천:

PHP 이메일 전송에 대한 개발 예시 및 아이디어 분석

PHP 이메일 전송 설명 예시(9 PHP 이메일 클래스 다운로드 포함)

PHP 이메일 전송 기능--ThinkPHP3.2.3 코드 상세 소개

[PHP 기본 통합] PHP 이메일 보내기(PHPMailer)

위 내용은 PHP로 이메일을 보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.