PHP를 사용하여 이메일을 보내는 방법은 무엇입니까?
PHPPHP를 사용하여 이메일을 보내는 방법은 무엇입니까?
웹 사이트에서 PHP를 사용하고 있으며 전자 메일 기능을 추가하고 싶습니다.
WAMPSERVER를 설치했습니다.
PHP를 사용하여 전자 메일을 보내려면 어떻게합니까?
해결법
-
==============================
1.
PHP의 mail () 함수를 사용하면 가능합니다. 메일 기능은 로컬 서버에서 작동하지 않습니다.
<?php $to = 'nobody@example.com'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?>
참고:
-
==============================
2.
https://github.com/PHPMailer/PHPMailer에서 PHPMailer 클래스를 사용할 수도 있습니다.
메일 기능을 사용하거나 SMTP 서버를 투명하게 사용할 수 있습니다. 또한 HTML 기반 전자 메일 및 첨부 파일을 처리하므로 사용자 고유의 구현을 작성할 필요가 없습니다.
수업은 안정적이며 Drupal, SugarCRM, Yii, Joomla와 같은 다른 많은 프로젝트에서 사용됩니다!
다음은 위 페이지의 예제입니다.
<?php require 'PHPMailerAutoload.php'; $mail = new PHPMailer; $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'user@example.com'; // SMTP username $mail->Password = 'secret'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted $mail->From = 'from@example.com'; $mail->FromName = 'Mailer'; $mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient $mail->addAddress('ellen@example.com'); // Name is optional $mail->addReplyTo('info@example.com', 'Information'); $mail->addCC('cc@example.com'); $mail->addBCC('bcc@example.com'); $mail->WordWrap = 50; // Set word wrap to 50 characters $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; }
-
==============================
3.
html 형식의 전자 메일에 관심이 있다면 Content-type : text / html; 헤더에. 예:
// multiple recipients $to = 'aidan@example.com' . ', '; // note the comma $to .= 'wez@example.com'; // subject $subject = 'Birthday Reminders for August'; // message $message = ' <html> <head> <title>Birthday Reminders for August</title> </head> <body> <p>Here are the birthdays upcoming in August!</p> <table> <tr> <th>Person</th><th>Day</th><th>Month</th><th>Year</th> </tr> <tr> <td>Joe</td><td>3rd</td><td>August</td><td>1970</td> </tr> <tr> <td>Sally</td><td>17th</td><td>August</td><td>1973</td> </tr> </table> </body> </html> '; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Additional headers $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n"; $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n"; $headers .= 'Cc: birthdayarchive@example.com' . "\r\n"; $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n"; // Mail it mail($to, $subject, $message, $headers);
자세한 내용은 PHP 메일 기능을 확인하십시오.
-
==============================
4.
또한 PEAR 메일 패키지 Pear Mail Page를 살펴보십시오.
그것은 내장 된 표준 mail () 함수 (표준 함수가 적당하지 않은 경우)보다 조금 더 강건한 것 같습니다.
다음은이 페이지에서 발췌 한 내용입니다. PEAR Mail send () 사용법
<?php include('Mail.php'); $recipients = 'joe@example.com'; $headers['From'] = 'richard@example.com'; $headers['To'] = 'joe@example.com'; $headers['Subject'] = 'Test message'; $body = 'Test message'; $smtpinfo["host"] = "smtp.server.com"; $smtpinfo["port"] = "25"; $smtpinfo["auth"] = true; $smtpinfo["username"] = "smtp_user"; $smtpinfo["password"] = "smtp_password"; // Create the mail object using the Mail::factory method $mail_object =& Mail::factory("smtp", $smtpinfo); $mail_object->send($recipients, $headers, $body); ?>
-
==============================
5.
요즘에는 대부분의 프로젝트에서 스위프트 메일러를 사용합니다. Symfony 프레임 워크와 Twig 템플릿 엔진을 제공 한 사람들이 만든 이메일을 보내는 데있어 매우 유연하고 우아한 객체 지향적 접근 방식입니다.
require 'mail/swift_required.php'; $message = Swift_Message::newInstance() // The subject of your email ->setSubject('Jane Doe sends you a message') // The from address(es) ->setFrom(array('jane.doe@gmail.com' => 'Jane Doe')) // The to address(es) ->setTo(array('frank.stevens@gmail.com' => 'Frank Stevens')) // Here, you put the content of your email ->setBody('<h3>New message</h3><p>Here goes the rest of my message</p>', 'text/html'); if (Swift_Mailer::newInstance(Swift_MailTransport::newInstance())->send($message)) { echo json_encode([ "status" => "OK", "message" => 'Your message has been sent!' ], JSON_PRETTY_PRINT); } else { echo json_encode([ "status" => "error", "message" => 'Oops! Something went wrong!' ], JSON_PRETTY_PRINT); }
신속 우편물을 사용하는 방법에 대한 자세한 내용은 공식 문서를 참조하십시오.
-
==============================
6.
이 시도:
<?php $to = "somebody@example.com"; $subject = "My subject"; $txt = "Hello world!"; $headers = "From: webmaster@example.com" . "\r\n" . "CC: somebodyelse@example.com"; mail($to,$subject,$txt,$headers); ?>
-
==============================
7.
이것은 메일 기능을 사용하여 일반 텍스트 전자 메일을 보내는 아주 기본적인 방법입니다.
<?php $to = 'SomeOtherEmailAddress@Domain.com'; $subject = 'This is subject'; $message = 'This is body of email'; $from = "From: FirstName LastName <SomeEmailAddress@Domain.com>"; mail($to,$subject,$message,$from);
-
==============================
8.
전체 코드 예제 ..
한번 해봐 ..
<?php // Multiple recipients $to = 'johny@example.com, sally@example.com'; // note the comma // Subject $subject = 'Birthday Reminders for August'; // Message $message = ' <html> <head> <title>Birthday Reminders for August</title> </head> <body> <p>Here are the birthdays upcoming in August!</p> <table> <tr> <th>Person</th><th>Day</th><th>Month</th><th>Year</th> </tr> <tr> <td>Johny</td><td>10th</td><td>August</td><td>1970</td> </tr> <tr> <td>Sally</td><td>17th</td><td>August</td><td>1973</td> </tr> </table> </body> </html> '; // To send HTML mail, the Content-type header must be set $headers[] = 'MIME-Version: 1.0'; $headers[] = 'Content-type: text/html; charset=iso-8859-1'; // Additional headers $headers[] = 'To: Mary <mary@example.com>, Kelly <kelly@example.com>'; $headers[] = 'From: Birthday Reminder <birthday@example.com>'; $headers[] = 'Cc: birthdayarchive@example.com'; $headers[] = 'Bcc: birthdaycheck@example.com'; // Mail it mail($to, $subject, $message, implode("\r\n", $headers)); ?>
-
==============================
9.
Postmark, Sendgrid 등과 같은 메일 웹 서비스를 사용할 수 있습니다.
Sendgrid vs Postmark vs Amazon SES 및 기타 이메일 / SMTP API 공급자
편집 : 이제 Google Gmail API를 사용합니다. 엄격한 필터로 인해 고용주의 조직에 알림 이메일을 보내는 데 문제가있었습니다. Gmail은 사용자를 스팸하지 않는 한 작동합니다.
-
==============================
10.
네이티브 PHP 함수 Mail ()이 나를 위해 작동하지 않습니다. 그것은 메시지를 보낸다 :
그래서 나는 보통 PHPMailer 패키지를 사용한다.
GitHub에 5.2.23 버전을 다운로드했습니다.
나는 방금 2 개의 파일을 골라 내 소스에 넣었다. PHP root
PHP 파일에 추가해야합니다.
require_once('class.smtp.php'); require_once('class.phpmailer.php');
이 코드는 단지 코드 일뿐입니다.
require_once('class.smtp.php'); require_once('class.phpmailer.php'); ... //---------------------------------------------- // Send an e-mail. Returns true if successful // // $to - destination // $nameto - destination name // $subject - e-mail subject // $message - HTML e-mail body // altmess - text alternative for HTML. //---------------------------------------------- function sendmail($to,$nameto,$subject,$message,$altmess) { $from = "yourcontact@yourdomain.com" $namefrom = "yourname"; $mail = new PHPMailer(); $mail->CharSet = 'UTF-8'; $mail->isSMTP(); // by SMTP $mail->SMTPAuth = true; // user and password $mail->Host = "localhost"; $mail->Port = 25; $mail->Username = $from; $mail->Password = "yourpassword"; $mail->SMTPSecure = ""; // options: 'ssl', 'tls' , '' $mail->setFrom($from,$namefrom); // From (origin) $mail->addCC($from,$namefrom); // There is also addBCC $mail->Subject = $subject; $mail->AltBody = $altmess; $mail->Body = $message; $mail->isHTML(); // Set HTML type //$mail->addAttachment("attachment"); $mail->addAddress($to, $nameto); return $mail->send(); }
그것은 매력처럼 작동합니다.
-
==============================
11.
이 스크립트로 이메일을 보냈습니다.
<h2>Test Mail</h2> <?php if (!isset($_POST["submit"])) { ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> From: <input type="text" name="from"><br> Subject: <input type="text" name="subject"><br> Message: <textarea rows="10" cols="40" name="message"></textarea><br> <input type="submit" name="submit" value="Click To send mail"> </form> <?php } else { if (isset($_POST["from"])) { $from = $_POST["from"]; // sender $subject = $_POST["subject"]; $message = $_POST["message"]; $message = wordwrap($message, 70); mail("Test@example.com",$subject,$message,"From: $from\n"); echo "Thank you for sending an email"; } } ?>
이메일 보내기 버튼을 누르면 이메일이 Test@example.com으로 전송됩니다.
-
==============================
12.
<?php include "db_conn.php";//connection file require "PHPMailerAutoload.php";// it will be in PHPMailer require "class.smtp.php";// it will be in PHPMailer require "class.phpmailer.php";// it will be in PHPMailer $response = array(); $params = json_decode(file_get_contents("php://input")); if(!empty($params->email_id)){ $email_id = $params->email_id; $flag=false; echo "something"; if(!filter_var($email_id, FILTER_VALIDATE_EMAIL)) { $response['ERROR']='EMAIL address format error'; echo json_encode($response,JSON_UNESCAPED_SLASHES); return; } $sql="SELECT * from sales where email_id ='$email_id' "; $result = mysqli_query($conn,$sql); $count = mysqli_num_rows($result); $to = "demo@gmail.com"; $subject = "DEMO Subject"; $messageBody ="demo message ."; if($count ==0){ $response["valid"] = false; $response["message"] = "User is not registered yet"; echo json_encode($response); return; } else { $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; // authentication enabled $mail->IsHTML(true); $mail->SMTPSecure = 'ssl';//turn on to send html email // $mail->Host = "ssl://smtp.zoho.com"; $mail->Host = "p3plcpnl0749.prod.phx3.secureserver.net";//you can use gmail $mail->Port = 465; $mail->Username = "demousername@example.com"; $mail->Password = "demopassword"; $mail->SetFrom("demousername@example.com", "Any demo alert"); $mail->Subject = $subject; $mail->Body = $messageBody; $mail->AddAddress($to); echo "yes"; if(!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message has been sent successfully"; } } } else{ $response["valid"] = false; $response["message"] = "Required field(s) missing"; echo json_encode($response); } ?>
위의 코드는 나를 위해 작동합니다.
-
==============================
13.
간단한 이메일 보내기 :
<?php // the message $msg = "First line of text\nSecond line of text"; // use wordwrap() if lines are longer than 70 characters $msg = wordwrap($msg,70); // send email mail("someone@example.com","My subject",$msg); ?>
출처 : https://www.w3schools.com/php/func_mail_mail.asp
문서 : http://php.net/manual/en/function.mail.php
from https://stackoverflow.com/questions/5335273/how-to-send-an-email-using-php by cc-by-sa and MIT lisence
'PHP' 카테고리의 다른 글
PHP에서 유용한 오류 메시지를 얻는 방법? (0) | 2018.09.02 |
---|---|
HTML / PHP로 XSS를 방지하는 방법? (0) | 2018.09.02 |
자바 스크립트 변수에 PHP 문자열 전달 (그리고 개행 문자 이스케이프) [duplicate] (0) | 2018.09.01 |
MySQL에 '존재하지 않으면 삽입'하는 방법? (0) | 2018.09.01 |
PHP에서 클라이언트 IP 주소를 얻는 방법? (0) | 2018.09.01 |