roghanishahab2

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

roghanishahab2 ۱۳۹۷/۱۰/۱۵ 46 زبان برنامه‌نویسی پی‌اچ‌پی

سلام 

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

پاسخ‌ها به این تاپیک
سید جعفر اسمعیلی
سید جعفر اسمعیلی طراح و توسعه دهنده وب
۱۳۹۷/۱۰/۱۵

سلام 

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

اما برای ارسال ایمیل در 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;
}

roghanishahab2
roghanishahab2
۱۳۹۷/۱۰/۱۵

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

در پاسخ به