PHP를 사용하여 이메일 전송 기능을 구현하는 방법은 무엇입니까? 다음 기사에서는 phpmailer 및 SMTP 서비스를 사용하여 PHP를 사용하여 이메일을 보내는 방법을 소개합니다.
가끔 블로그에 메시지와 댓글이 있을 예정인데, 제 시간에 답글을 달겠습니다. 하지만 저에게 메시지를 남긴 사람이 제 블로그를 다시 확인하지 않으면 답장을 보내지 않을 것입니다. 이것은 매우 중요하지 않습니다.
다른 사람들의 블로그를 보세요. 대부분의 답변은 이메일을 통해 이루어집니다.
이거 꽤 좋은데 하나 사세요.
바이두에서는 기본적으로 두 가지 방법을 소개하고 있습니다.
첫 번째는 PHP가 qq 메일함 또는 NetEase 메일함의 SMTP 서버를 사용하여 이메일을 보내는 것입니다.
두 번째 방법은 phpmailer를 사용하여 이메일을 보내는 것입니다.
두 번째 방법에서도 SMTP 서비스를 활성화하려면 이메일이 필요합니다.
사서함에서 SMTP 서비스를 활성화하는 방법의 최종 효과는 아래 그림과 같습니다.
열기 과정에서 페이지에 다음과 같이 SMTP 호출을 위한 인증 비밀번호를 묻는 메시지가 표시됩니다. 아래 그림과 같습니다. 이 비밀번호를 기억해야 합니다. 기억나지 않으면 다시 생성할 수 있습니다. 위에서 두 개의 SMTP 서비스를 열었고 최종 인증 비밀번호가 우선합니다.
첫 번째 방법을 시도했는데 오류는 다음과 같습니다.
Trying to smtp.qq.com:587 220 smtp.qq.com Esmtp QQ Mail Server Connected to relay host smtp.qq.com > HELO localhost 250 smtp.qq.com > AUTH LOGIN ODA1Nzk1OTU1QHFxLmNvbQ== 530 Must issue a STARTTLS command first. Error: Remote host returned "530 Must issue a STARTTLS command first." Error: Error occurred while sending HELO command. Error: Cannot send email to <1150366147@qq.com> Disconnected from remote host
바이두에서 검색했는데 명확한 답변을 찾지 못했습니다. 이러한 문제가 발생한 경우 아래에 메시지를 남겨주시면 논의해 드리겠습니다.
저는 여기서 두 번째 방법을 사용하고 있습니다.
Phpmail의 구체적인 장점과 단점에 대해서는 자세히 설명하지 않겠습니다. 더 알고 싶으시면 바이두에 가보세요.
첫 번째 단계는 phpmailer를 얻는 것입니다
PHPMailer 프로젝트 주소: https://github.com/PHPMailer/PHPMailer
; git 명령을 사용하여 로컬로 복제하거나 프로젝트 페이지 오른쪽 하단에 있는 "ZIP 다운로드"를 직접 클릭하여 전체 PHPMailer 코드 패키지를 받으세요. , 그런 다음 로컬에서 압축을 풉니다.
두 번째 단계는 서버 지원을 활성화하는 것입니다
phpmailer를 사용하려면 서버에서 소켓과 openssl 서비스를 활성화해야 합니다.
세 번째 단계는 phpmailer를 서버에 업로드하는 것입니다.
여기서는 thinkphp5 프레임워크를 사용하고 있는데, 루트 디렉터리 아래의 확장 디렉터리에 업로드했습니다.
사실 이 단계를 자세히 설명할 필요는 없습니다. 하지만 github에서 다운로드한 모든 프로젝트 파일이 서버에 몇 가지 기본 파일만 업로드할 수 있는 것은 아닙니다.
네 번째 단계는 메일을 보내는 공개 방법과 호출 방법을 인코딩하는 것입니다.
메일 보내기 공개 방법:
/*发送邮件方法 *@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 = 'https://guanchao.site'; //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码 $mail->CharSet = 'UTF-8'; //设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名 $mail->FromName = 'LSGO实验室'; //smtp登录的账号 这里填入字符串格式的qq号即可 $mail->Username ='805795955@qq.com'; //smtp登录的密码 使用生成的授权码(就刚才叫你保存的最新的授权码) $mail->Password = '****************'; //设置发件人邮箱地址 这里填入上述提到的“发件人邮箱” $mail->From = '805795955@qq.com'; //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false $mail->isHTML(true); //设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大 $mail->addAddress($to,'时间里的博客在线通知'); //添加多个收件人 则多次调用方法即可 // $mail->addAddress('**********@qq.com','时间里的博客在线通知'); //添加该邮件的主题 $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; } }
전화 방법:
여기서 간단하게 전화를 걸고 있습니다. 어떤 콘텐츠가 필요한지 자신의 필요에 따라.
public function sendEmail() { $flag = sendMail('805795955@qq.com','时间里的博客在线通知','欢迎来到时间里的博客'); if($flag){ echo true; }else{ echo false; } }
위는 phpmailer를 사용하여 이메일을 보내는 전체 구현 과정입니다.
원본 주소 : https://juejin.cn/post/7083661334214082574
저자 : camellia
추천 학습 : "PHP Video Tutorial"
위 내용은 이 기사에서는 phpmailer를 사용하여 PHP에서 이메일 전송 기능을 구현하는 방법을 보여줍니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!