PDA

View Full Version : سوال: کلاس ارسال ایمیل از طریق SMPT یاهو



tecnocomputer2
دوشنبه 25 بهمن 1389, 14:15 عصر
با سلام.
یه کلاس دارم کار نمیکنه، کسی کلاسی داره که باهاش ایمیل ارسال کنیم با SMTP یاهو؟

(یه مثال هم زده بشه ممنون میشم)

tux-world
دوشنبه 25 بهمن 1389, 19:59 عصر
/***********************
CLASS :: MYMail
************************/
class MyMail{
var $To;
var $ToSender;//If you want the email to go to the sender
var $Subject;
var $Msg;
var $Headers;
var $From;
var $ReplyTo;
function MyMail($To, $Subject, $Msg, $From, $ReplyTo)
{
$this->To=(empty($To)) ? "0" : $To;
$this->Subject=(empty($Subject)) ? "0" : $Subject;
$this->Msg=(empty($Msg)) ? "0" : $Msg;
$this->From=(empty($From)) ? "0" : $From;
$this->ReplyTo=(empty($ReplyTo)) ? "0" : $ReplyTo;
$this->Headers="MIME-Version: 1.0" . "\r\n" . "Content-type: text/html; charset=utf-8" . "\r\n" . "From:" . $this->From . "\r\n" . "Reply-To:" . $this->ReplyTo . "\r\n" . "X-Mailer: PHP/" . phpversion();
//Use this array if you want to send to only one person
$SetMail=array(
'To'=> $this->To,
'Subject'=> $this->Subject,
'Msg'=> $this->Msg,
'Headers'=> $this->Headers,
'From'=> $this->From,
'ReplyTo'=> $this->ReplyTo
);
if(in_array("0",$SetMail))
{
echo "<div align=\"left\"><font color=\"#640000\">Something wrong with the mail! Please make sure all fields are filled in!</font></div>";
return;
}
else
{
if(!mail($SetMail['To'], $SetMail['Subject'], $SetMail['Msg'], $SetMail['Headers']))
{
echo "<script type=\"text/javascript\">window.location… is a problem with the Mail!\"</script>";
}
}
}
}

tecnocomputer2
دوشنبه 25 بهمن 1389, 22:27 عصر
یه مثال میزنید که چجوری میشه ازش استفاده کرد؟
از طریق SMTP میخام باشه، کجا مشخصات SMTP یاهو، ایمیل، رمز.. رو میزنیم؟

m_karimi
سه شنبه 26 بهمن 1389, 03:13 صبح
سلام این لینک را ببینید. اگه مشکلی داشتید بپرسید.
http://forum.persiantools.com/t123634-post3348352.html

باید در php.ini هم extension=php_openssl.dll را از کامنت خارج کنید.

tecnocomputer2
سه شنبه 26 بهمن 1389, 18:54 عصر
اولش کار نمیکرد، یه سری تغیرات دادم توش درست شد.

یه سوال، با این روش ارسال ایمیل، محدودیتی هست؟
منظورم از محدودیت اینه که سروری که اسکریپتم روشه، اگه خیلی از این روش ایمیل ارسال کنم شاکی نمیشه؟

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

tux-world
سه شنبه 26 بهمن 1389, 23:11 عصر
روش استفاده :

$MyMail=new MyMail($To="" , $Subject="", $Msg="", $From="", $ReplyTo="");

tecnocomputer2
سه شنبه 26 بهمن 1389, 23:37 عصر
تشکر tux-world (http://barnamenevis.org/member.php?17548-tux-world) ولی کجا مشخصات SMTP رو بزنیم، گفتم ارسال ایمیل با SMTP.
روش m_karimi (http://barnamenevis.org/member.php?18638-m_karimi) رو استفاده میکنم، فقط تشکر اگه یکی جواب سوالم رو بده:

- با این روش ارسال ایمیل، محدودیتی هست؟
- منظورم از محدودیت اینه که سروری که اسکریپتم روشه، اگه خیلی از این روش ایمیل ارسال کنم شاکی نمیشه؟
- در هر دقیقه چند ایمیل بفرستم که نه مشکلی از یاهو برام پیش بیاد نه مدیریت سرور کاری نداشته باشه.

jirjirakk
چهارشنبه 27 بهمن 1389, 10:59 صبح
نیم نگاهی هم به کتابخانه SwiftMailer (http://www.swiftmailer.org)بندازید، کتابخانه خوبی است.

tecnocomputer2
چهارشنبه 27 بهمن 1389, 11:04 صبح
تشکر به خاطر کلاس ایمیل، کلاسی که میخاستم به دست اوردم. حالا سوالم اینه که:

- با این روش ارسال ایمیل (ارسال ایمیل با SMTP)، محدودیتی هست؟
- منظورم از محدودیت اینه که سروری که اسکریپتم روشه، اگه خیلی از این روش ایمیل ارسال کنم شاکی نمیشه؟
- در هر دقیقه چند ایمیل بفرستم که نه مشکلی از یاهو برام پیش بیاد نه مدیریت سرور کاری نداشته باشه.

tehro0n
چهارشنبه 27 بهمن 1389, 15:08 عصر
/***********************
CLASS :: MYMail
************************/
class MyMail{
var $To;
var $ToSender;//If you want the email to go to the sender
var $Subject;
var $Msg;
var $Headers;
var $From;
var $ReplyTo;
function MyMail($To, $Subject, $Msg, $From, $ReplyTo)
{
$this->To=(empty($To)) ? "0" : $To;
$this->Subject=(empty($Subject)) ? "0" : $Subject;
$this->Msg=(empty($Msg)) ? "0" : $Msg;
$this->From=(empty($From)) ? "0" : $From;
$this->ReplyTo=(empty($ReplyTo)) ? "0" : $ReplyTo;
$this->Headers="MIME-Version: 1.0" . "\r\n" . "Content-type: text/html; charset=utf-8" . "\r\n" . "From:" . $this->From . "\r\n" . "Reply-To:" . $this->ReplyTo . "\r\n" . "X-Mailer: PHP/" . phpversion();
//Use this array if you want to send to only one person
$SetMail=array(
'To'=> $this->To,
'Subject'=> $this->Subject,
'Msg'=> $this->Msg,
'Headers'=> $this->Headers,
'From'=> $this->From,
'ReplyTo'=> $this->ReplyTo
);
if(in_array("0",$SetMail))
{
echo "<div align=\"left\"><font color=\"#640000\">Something wrong with the mail! Please make sure all fields are filled in!</font></div>";
return;
}
else
{
if(!mail($SetMail['To'], $SetMail['Subject'], $SetMail['Msg'], $SetMail['Headers']))
{
echo "<script type=\"text/javascript\">window.location… is a problem with the Mail!\"</script>";
}
}
}
}

خوب این کلاس چه فرقی با حالت عادی داره؟

if (isset($_REQUEST['email'])) {
$_mail = strtolower($_POST['email']);
$_mail = str_escape($_mail);
$_subject = "Your Account information :: اطلاعات کاربری شما";
$_message = "سلام..!";
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: test.com <test@example.com>' . "\r\n";
//$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
//$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

mail( "$_mail", "$_subject",
$_message, $headers);
}