PDA

View Full Version : سوال: ارسال ميل توسط ميلي كه توي هاست ايجاد كردم



h_qorbani
پنج شنبه 02 شهریور 1391, 10:52 صبح
سلام
من تو هاستم يه mail ايجاد كردم ، مثلا siba@etrat.com
توسط outlook تستشم كردم. يعني هم نامه ارسال كردم و هم دريافت.
حالا چطور ميتونم با php يه mail به آدرسي مشخص ارسال كنم؟
به اين صورت امتحان كردم نشد:
فايل sendmail.php :


<?php
include("../includes/config.php");
require 'functions.php';
$pass='78qiba26';
send_mail( 'siba@etrat.com','h_qorbani@yahoo.com',
'Registration System Demo - Your New Password',
'Your password is: '.$pass);

?>

فايل function.php :


<?php

function send_mail($from,$to,$subject,$body)
{
$headers = '';
$headers .= "From: $from\n";
$headers .= "Reply-to: $from\n";
$headers .= "Return-Path: $from\n";
$headers .= "Message-ID: <" . md5(uniqid(time())) . "@" . $_SERVER['SERVER_NAME'] . ">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Date: " . date('r', time()) . "\n";

mail($to,$subject,$body,$headers);
}
?>


فايل config.php هم چون مشخصه چيه ، ديگه كدشو نذاشتم.(اتصال به ديت بيس كه درست كار ميكنه)

نيازي نيست اين user,pass ايميل رو كه ساختم حين كد نويسي مشخص كنم؟
وقتي اتصال با بانك برقرار ميشه خودش ميشناسه؟

Unique
پنج شنبه 02 شهریور 1391, 14:20 عصر
از phpmailer استفاده کنید ! توی سایت جستجو کنید موارد زیادی پرسیده شده

h_qorbani
شنبه 04 شهریور 1391, 11:22 صبح
از phpmailer استفاده کنید ! توی سایت جستجو کنید موارد زیادی پرسیده شده
كد من ايراد داره؟

AbiriAmir
شنبه 04 شهریور 1391, 12:31 عصر
با کد شما میشه
اما راه بهترش استفاده از smtp هست
کد شما در واقع فقط از اون اسم ارسال میکنه نه از اون آدرس ایمیل

h_qorbani
شنبه 04 شهریور 1391, 13:07 عصر
اما راه بهترش استفاده از smtp هست

پيرو فرمايش دوستان phpmailer رو دريافت كردم و به اين صورت عمل كردم:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>وبگو | ارسال ایمیل با کلاس PHPMailer</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- http://webgoo.ir -->
</head>
<body>
<?php
require_once('file:///C|/wamp/www/project/baalini-24-05-91/includes/class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();
try {
$mail->Host = "111.111.11.111"; // آدرس SMTP سرور فرضي
$mail->SMTPAuth = true; // استفاده از SMTP authentication
$mail->Username = "mailusername"; // نام کاربری SMTP
$mail->Password = "mailpassword"; // کلمه عبور SMTP
$mail->AddReplyTo('mailusername@ddd.ac.ir', ' test reply'); // افزودن پاسخ به ارسال کننده
$mail->AddAddress('h.qorbani7@gmail.com', 'Hi mr.hamzeh'); // تنظیم آدرس گیرنده ایمیل
$mail->SetFrom('mailusername@ddd.ac.ir', 'Your Name'); // تنظیم قسمت ارسال کننده ایمیل
$mail->Subject = 'PHPMailer تست'; // موضوع ایمیل
$mail->AltBody = 'برنامه شما از این ایمیل پشتیبانی نمی کند، برای دیدن آن، لطفا از برنامه دیگری استفاده نمائید'; // متنی برای کاربرانی که نمی توانند ایمیل را به درستی مشاهده کنند
$mail->CharSet = 'UTF-8'; // یونیکد برای زبان فارسی
$mail->ContentType = 'text/html'; // استفاده از html
$mail->MsgHTML('<html>
<body>
این یک <font color="#CC0000">تست</font> است!
</body>
</html>'); // متن پیام به صورت html
//$mail->AddAttachment('images/phpmailer.gif'); // ضمیمه کردن فایل
$mail->Send(); // ارسال
echo "پیام با موفقیت ارسال شد\n";
}
catch (phpmailerException $e) {
echo $e->errorMessage(); // پیام خطا از phpmailer
}
catch (Exception $e) {
echo $e->getMessage(); // سایر خطاها
}
?>
</body>
</html>


اما نشد.
توي معرفي سرور و يوزر پس اشتباه ميكنم؟
من هاستم ي آي پيه و بعدش يوزر پس mailo دادم.

h_qorbani
شنبه 04 شهریور 1391, 17:53 عصر
يه سوال ديگه اينكه من وقتي phpmailer (http://barnamenevis.org/webgoo.ir/example/php/PHPMailer5.2.1.zip) رو دانلود كردم ، تنها فايل class.phpmailer.php رو برداشتم و ازش استفاده كردم.
اين كار درسته؟
بقيه فايلهارو رها كردم و اونا رو تو هاستم آپلود نكردم.

Unique
یک شنبه 05 شهریور 1391, 18:29 عصر
شما میخواین با smtp بفرستین ! کنازش یک فایل برای پشتیبانی از smtp هم هست که به اون هم نیاز دارین ! اما کلا نمیخواد با smtp بفرستین ! از همون IsMAIL استفاده کنین و from را بگذارین روی ایمیل مورد نظرتون، البته اگه از هاست لینوکس استفاده میکنید.

h_qorbani
یک شنبه 05 شهریور 1391, 21:49 عصر
شما میخواین با smtp بفرستین ! کنازش یک فایل برای پشتیبانی از smtp هم هست که به اون هم نیاز دارین ! اما کلا نمیخواد با smtp بفرستین ! از همون IsMAIL استفاده کنین و from را بگذارین روی ایمیل مورد نظرتون، البته اگه از هاست لینوکس استفاده میکنید.
ميشه كد واسه smtp رو بذارين؟
من از خيلي از آموزش ها توي نت استفاده كردمو نشد.
مشخصاتي كه استفاده مي كنم به اين صورته:


<?php
require_once 'Swift-Mailer/lib/swift_required.php';
$mail = new PHPMailer(true);
$mail->IsSMTP();
try {
$mail->Host = "111.111.11.111"; // آدرس SMTP سرور فرضي
$mail->SMTPAuth = true; // استفاده از SMTP authentication
$mail->Username = "mailusername"; // فقط قسكت نام كاربري ميل هاستمو گذاشتم
$mail->Password = "mailpassword"; // کلمه عبور ميل هاستمو گذاشتم
$mail->AddReplyTo('mailusername@ddd.ac.ir', ' test reply'); //ميل هاستمو گذاشتم
$mail->AddAddress('h.qorbani7@gmail.com', 'Hi mr.hamzeh'); // تنظیم آدرس گیرنده ایمیل
$mail->SetFrom('mailusername@ddd.ac.ir', 'Your Name'); // ميل هاستمو گذاشتم
$mail->Subject = 'PHPMailer تست'; // موضوع ایمیل
$mail->AltBody = 'برنامه شما از این ایمیل پشتیبانی نمی کند، برای دیدن آن، لطفا از برنامه دیگری استفاده نمائید'; // متنی برای کاربرانی که نمی توانند ایمیل را به درستی مشاهده کنند
$mail->CharSet = 'UTF-8'; // یونیکد برای زبان فارسی
$mail->ContentType = 'text/html'; // استفاده از html
$mail->MsgHTML('<html>
<body>
این یک <font color="#CC0000">تست</font> است!
</body>
</html>'); // متن پیام به صورت html
//$mail->AddAttachment('images/phpmailer.gif'); // ضمیمه کردن فایل
$mail->Send(); // ارسال
echo "پیام با موفقیت ارسال شد\n";
}
catch (phpmailerException $e) {
echo $e->errorMessage(); // پیام خطا از phpmailer
}
catch (Exception $e) {
echo $e->getMessage(); // سایر خطاها
}
?>

من حتي حالتي كه وا gmail باس تنظيم كنيم رو هم امتحان كردمو نشد.پورت هاي مختلف رو هم واسش امتحان كردم.
ديگه موندم چكار كنم.
وقتي كدمو اجرا ميكنم ، هيچ بيغامي نميده و صفحه خاليه

Unique
دوشنبه 06 شهریور 1391, 01:51 صبح
دوست عزیز لطفا در سایت جستجو کنید ! من باید تمام مطالبی که قبلا توی پست های گذشته گفتم را براتون بگذارم ! یکی از دوستان چند وقت پیش سوالی درباره اتصال به smtp سایت gmail و ارسال نامه پرسیده بودند که از طریق همین phpmailer خود بنده توضیحاتی دادم !


require("classes/phpMailer.php");
$mailObj = new phpmailer();
$mailObj->CharSet = "utf-8";
$mailObj->FromName = "Your name here";
$mailObj->From = "full gmail email address";
$mailObj->AddAddress("full to email address","to name");
$mailObj->Subject = "a sample message from gmail";
$mailObj->Body = "<b>Here goes your body !</b>";
$mailObj->IsHTML(true);
$mailObj->IsSMTP();
$mailObj->SMTPDebug = 2;
$mailObj->SMTPAuth = true;
$mailObj->SMTPSecure = 'tls';
$mailObj->Host = "smtp.gmail.com";
$mailObj->Port = 587;
$mailObj->Username = "full gmail email address";
$mailObj->Password = "your pass";
$mailObj->Send();

if ($mailObj->ErrorInfo != "")
throw new Exception($mailObj->ErrorInfo);

برای سرور خودتون هم نباید نیازی به SMTPSecure باشه ! در کد خودتون اختلافات زیاد هست اما مهمترینش اینه که باید username همون email کامل شما باشه نه فقط بخش قبل از @ را بگذارین !

sina39000
چهارشنبه 18 بهمن 1391, 08:16 صبح
سلام به همه دوستان
من وقتي از ميلي كه توي هاستم ايجاد كردم نامه ميفرستم (با استفاده از تابع mail كلاسيك php ) توي آدرس فرستنده اسم هاست هم مياد اينو با مسئول هاست چك كردم گفت ما authnetication رو فعال كرديم بايد قبل از ارسال authneticate كني ولي من توي اين تابع يا php.ini گزينه اي واسه اينكار نميبينم!!!
ترجيحا هم نميخوام از توابع آماده PHPMailer يا Swift... براي ارسال ميل استفاده كنم.

siavashsay
چهارشنبه 18 بهمن 1391, 10:32 صبح
این تاپیک رو مطالعه کنید !
http://barnamenevis.org/showthread.php?382492-%D9%81%D8%B1%D8%B3%D8%AA%D8%A7%D8%AF%D9%86-Email-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-Localhost-%28-%D8%AA%D8%B3%D8%AA-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-Wamp-%29

sina39000
چهارشنبه 18 بهمن 1391, 12:15 عصر
ممنون از جوابت
عنوان اون تاپيك هست ارسال از local من گفتم ميخوام از هاست ارسال كنم.
همونطوري كه خودت هم تو تاپيك گفتي و براي دانلود هم گذاشتيش اون كد از يه ابزار (sendmail.exe) براي اينكار استفاده ميكنه...

Unique
پنج شنبه 19 بهمن 1391, 11:59 صبح
توي آدرس فرستنده اسم هاست هم مياد
منظورتون چیه آدرس فرستنده ؟ یعین from ؟ یا from name ؟

sina39000
دوشنبه 23 بهمن 1391, 10:02 صبح
ممنون از جواب
مجبور شدم مشكل رو فعلا با PHPMailer حل كنم تا بعد.
الان فقط ميخوام بدونم تابع mail گزينه اي براي Autnethication داره يا نه؟