سلام
من میخوام برای سایتی که با php نوشتم یه سیستم ارسال ایمیل ایجاد کنم. به این صورت که وقتی برای کاربرا یه فایل آپلود کردم، یک ایمیل براشون ارسال بشه که بیان از پَنل کاربری فایل رو دانلود کنن. ممنون میشم راهنمایی بفرمایید.
سلام
من میخوام برای سایتی که با 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;
}
پاسخ ها