ارسال ایمیل خودکار با استفاده از پی اچ پی .

سلام 

من میخوام برای سایتی که با php نوشتم یه سیستم ارسال ایمیل ایجاد کنم. به این صورت که وقتی برای کاربرا یه فایل آپلود کردم، یک ایمیل براشون ارسال بشه که بیان از پَنل کاربری فایل رو دانلود کنن. ممنون میشم راهنمایی بفرمایید. 

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

سلام 

برای ارسال ایمیل باید موقع آپلود چک کنید که اگر فایل ها به درستی آپلود شدند و لینکشو رو داخلی متغییری ذخیره کنی وبه  کاربر ارسال کنی.مثل اینکه موقع ذخیره داده ای تو پایگاه چک می کنیم اگه فایل ذخیره شد پیام موفقیت آمیز بودن نمایش بدیم.

اما برای ارسال ایمیل در php  قبلا خیلی راحت بود با استفاده از تابع mail می تونستی خیلی راحت ارسال کنید ساختارشم اینجوری بود 

mail("someone@example.com","My subject",$msg);

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

اما الان ابزاری های خوبی وجود داری مثل PHPMailer یا SwiftMailer

اینم لینک مستندات ارسال ایمیل با PHPMailer:

https://github.com/PHPMailer/PHPMailer

یک نمونه کد ارسال ایمیل با PHPMailer

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

$mail = new PHPMailer(true);                              // Passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 2;                                 // Enable verbose debug output
    $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 TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('from@example.com', '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');

    //Attachments
    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

    //Content
    $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';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

یک دنیا ممنون دوست عزیز. 

online-support-icon