logo
logo
تبلیغ کلیکی تاپ سایت 98

ارسال ایمیل با php

ارسال ایمیل با php
هدایت عباسی آموزش php

ارسال ایمیل با php با استفاده از mail , smtp , PHPMailer و ارسال از طریق جیمیل با استفاده از php همراه با چندین مثال و توضیحات کامل.

این آموزش متعلق به تاپ سایت 98 می باشد.

نکته : بعضی سرورها ارسال ایمیل با php را بدرستی انجام نمی دهند یعنی احتمال دارد یک کد در یک سرور ، درست عمل کند و در سرور و هاست شرکت دیگر ، جواب ندهد.

ارسال ایمیل با تابع mail : 

یکی از روش های ارسال ایمیل با php ، استفاده از تابع mail است.

در هنگام ارسال ایمیل ، سعی کنید از هاست اصلی این کار کد را تست نمایید و برای دریافت تنظیمات ایمیل ، به هاست تیکت بزنید و درخواست اطلاعات و تنظیمات برای ارسال ایمیل با php نمایید.

تابع mail () به شما اجازه می دهد تا به طور مستقیم از یک اسکریپت ایمیل بفرستید.

سینتکس تابع mail  :

در این بخش از آموزش php و ارسال ایمیل به سراغ سینتکس تابع mail می رویم و گزینه های آن را شرح می دهیم.

mail(to,subject,message,headers,parameters);

گزینه to : گزینه to ضروری است و گیرنده ایمیل را مشخص می کند.

گزینه subject : گزینه subject ضروری است و موضوع ایمیل را مشخص می کند.

Message : گزینه message ضروری است و پیام فرستاده شده را تعریف می کند. هر خط باید با یک LF (\ n) جدا شود. خطوط نباید بیش از 70 کاراکتر باشد.

Headers :گزینه headers اختیاری است و هدرهای اضافی مانند From، Cc و Bcc را مشخص می کند . هدرهای اضافی باید با CRLF (\ r \ n) جدا شوند.

نکته: هنگام ارسال ایمیل، باید حاوی یک عنوان از Header باشد. این را می توان با این پارامتر یا در فایل php.ini تنظیم کرد.

parameters : اختیاری است و یک پارامتر اضافی را برای برنامه sendmail تعیین می کند ( یکی که در تنظیم پیکربندی sendmail_path تعریف شده است).

مثال ارسال ایمیل با php :

$msg = "First line of text\nSecond line of text";
$msg = wordwrap($msg,70);
mail("someone@example.com","My subject",$msg);

مثال دوم :

$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);

مثال سوم : در مثال سوم ارسال ایمیل ، کد html هم وجود دارد.

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";
$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>This email contains HTML Tags!</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

mail($to,$subject,$message,$headers);
?>

ارسال ایمیل با smtp :

برای ارسال ایمیل با smtp از  PHPMailer استفاده می کنیم.

هنگامی که از تابع ایمیل پی اچ پی استفاده می کنید، به طور مستقیم از وب سرور خود ایمیل می گیرید. اگر آدرس FROM به درستی تنظیم نشود. ارسال نامه از طریق SMTP توصیه می شود زیرا ایمیل از سرور ایمیل به جای سرور وب ارسال می شود.

شما می توانید از سرور ایمیل میزبان دیگری برای ارسال ایمیل استفاده کنید، اما برای این منظور ابتدا باید احراز هویت شوید. به عنوان مثال: برای ارسال یک ایمیل از سرور ایمیل Gmail شما باید یک حساب Gmail داشته باشید.

SMTP یک پروتکل است که توسط مشتریان ایمیل برای ارسال درخواست ارسال ایمیل به یک سرور ایمیل استفاده می شود. هنگامی که ایمیل سرور ایمیل را تایید می کند، آن را به مقصد سرور ایمیل می فرستد.

در اینجا یک مثال از ارسال یک ایمیل از سرور ایمیل Gmail از دامنه شما است. برای اجرای کد نیاز به یک سرور ایمیل محلی ندارید. ما از پروتکل SMTP استفاده خواهیم کرد.

در کد زیر از  PHPMailer استفاده شده است.

<?php
require_once "vendor/autoload.php";
$mail = new PHPMailer;
//Enable SMTP debugging.
$mail->SMTPDebug = 3;
//Set PHPMailer to use SMTP.
$mail->isSMTP();
//Set SMTP host name
$mail->Host = "smtp.gmail.com";
//Set this to true if SMTP host requires authentication to send email
$mail->SMTPAuth = true;
//Provide username and password
$mail->Username = "name@gmail.com";
$mail->Password = "super_secret_password";
//If SMTP requires TLS encryption then set it
$mail->SMTPSecure = "tls";
//Set TCP port to connect to
$mail->Port = 587;
$mail->From = "name@gmail.com";
$mail->FromName = "Full Name";
$mail->addAddress("name@example.com", "Recepient Name");
$mail->isHTML(true);
$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";
if(!$mail->send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent successfully";
}

جیمیل به رمزگذاری TLS بیش از SMTP نیاز دارد، بنابراین ما بر اساس آن تنظیم میکنیم.

قبل از اینکه از طریق SMTP بفرستید باید نام میزبان، شماره پورت، نوع رمزگذاری را در صورت لزوم بدست آورید و اگر احراز هویت لازم باشد، باید نام کاربری و رمز عبور را نیز داشته باشید.

اگر به دنبال کار پاره وقت هستید با ما تماس بگیرید.

اگر سوال یا نظری دارید در بخش کامنت ها بنویسید.اگر موضوع خاصی مد نظر شماست که در سایت موجود نیست در بخش کامنت ها بنویسید

کسب و کار

منبع: تاپ سایت 98

تگ:

دوره های آموزشی دوره های آموزشی

نظرات کاربران

از دیدگاه مرتبط با موضوع استفاده نمایید.

از تبلیغ سایت یا شبکه اجتماعی خودداری فرمایید.

برای پاسخ گویی بهتر در سایت ثبت نام نمایید و سپس سوال خود را مطرح فرمایید.