PDA

View Full Version : ارسال اطلاعات به ایمیل



دانیال دزفولی
شنبه 17 اسفند 1392, 22:47 عصر
سلام

کد ساده ی php میخواستم که اطلاعات رو به ایمیل بفرسته


اینو دارم<?php//--------------------------Set these paramaters--------------------------


// Subject of email sent to you.
$subject = 'فرم تماس';


// Your email address. This is where the form information will be sent.
$emailadd = 'danielmerikhi@yahoo.com';


// Where to redirect after form is processed.
$url = 'http://www.7learn.com/';


// Makes all fields required. If set to '1' no field can not be empty. If set to '0' any or all fields can be empty.
$req = '0';


// --------------------------Do not edit below this line--------------------------
$text = "\n\n";
$space = ' ';
$line = '
';
foreach ($_POST as $key => $value)
{
if ($req == '1')
{
if ($value == '')
{echo "$key is empty";die;}
}
$j = strlen($key);
if ($j >= 20)
{echo "Name of form element $key cannot be longer than 20 characters";die;}
$j = 20 - $j;
for ($i = 1; $i <= $j; $i++)
{$space .= ' ';}
$value = str_replace('\n', "$line", $value);
$conc = "{$key}:$space{$value}$line";
$text .= $conc;
$space = ' ';
}
mail($emailadd, $subject, $text, 'From: '.$emailadd.'');
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
?>








ولی کار نمیده





آدرس سایتی که آپلودش کردم اینو توش
http://danielmerikhi.byethost33.com/email.php

دانیال دزفولی
شنبه 17 اسفند 1392, 23:21 عصر
این یکی هم دارم




<?
$to = "danielmerikhi@yahoo.com";
$from = "support@parsdata.com";
$password = "your email password";
$subject = "this is subject";
$contents = "This is a test";
PARSDATA_Send_Mail($from,$to,$password,$subject,$c ontents);
print("<HTML><BODY>Mail sent</body></html>!");
function PARSDATA_Send_Mail($from, $to,$password, $subject, $message)
{
$namefrom = "";
$nameto = "";
/* your configuration here */
$smtpServer = "Mail Server IP"; //does not accept STARTTLS
$port = "25"; // try 587 if this fails
$timeout = "45"; //typical timeout. try 45 for slow servers
$username = $from; //your gmail account
$password = $password; //the pass for your gmail
$localhost = $_SERVER['REMOTE_ADDR']; //requires a real ip
$newLine = "\r\n"; //var just for newlines
/* you shouldn't need to mod anything else */
//connect to the host and port
$smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout);
//echo $errstr." - ".$errno;
$smtpResponse = fgets($smtpConnect, 4096);
if(empty($smtpConnect))
{
$output = "Failed to connect: $smtpResponse";
echo $output;
return $output;
}
else
{
//$logArray['connection'] = "Connected to: $smtpResponse";
// echo "connection accepted<br>".$smtpResponse."<p />Continuing<p
//>";
}
//you have to say HELO again after TLS is started
fputs($smtpConnect, "HELO $localhost". $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['heloresponse2'] = "$smtpResponse";
//request for auth login
fputs($smtpConnect,"AUTH LOGIN" . $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['authrequest'] = "$smtpResponse";
//send the username
fputs($smtpConnect, base64_encode($username) . $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['authusername'] = "$smtpResponse";
//send the password
fputs($smtpConnect, base64_encode($password) . $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['authpassword'] = "$smtpResponse";
//email from
fputs($smtpConnect, "MAIL FROM: <$from>" . $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['mailfromresponse'] = "$smtpResponse";
//email to
fputs($smtpConnect, "RCPT TO: <$to>" . $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['mailtoresponse'] = "$smtpResponse";
//the email
fputs($smtpConnect, "DATA" . $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['data1response'] = "$smtpResponse";
//construct headers
$headers = "MIME-Version: 1.0" . $newLine;
$headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine;
$headers .= "To: $nameto <$to>" . $newLine;
$headers .= "From: $namefrom <$from>" . $newLine;
//observe the . after the newline, it signals the end of message
fputs($smtpConnect, "To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['data2response'] = "$smtpResponse";
// say goodbye
fputs($smtpConnect,"QUIT" . $newLine);
$smtpResponse = fgets($smtpConnect, 4096);
$logArray['quitresponse'] = "$smtpResponse";
$logArray['quitcode'] = substr($smtpResponse,0,3);
fclose($smtpConnect);
//a return value of 221 in $retVal["quitcode"] is a success
return($logArray);
}
?>

دانیال دزفولی
شنبه 17 اسفند 1392, 23:23 عصر
هیچکدوم کار نمیدن

کاری که میکنم:
اینا رو توی یه فایل php سیو و روی هاست آپلود میکنم

بعد آدرس فایل رو وارد میکنم
ولی ایمیلی برام ارسال نمیشه

[younes]
شنبه 17 اسفند 1392, 23:31 عصر
خوب دوست عزیز به نظر میاد شما تنظیمات php.ini رو انجام ندادی برای ارسال ایمیل شما باید فایل php.ini رو ویرایش کنی که منطقا شما به اون دسترسی نداری پس باید از تابع ini_set(); استفاده و سرور میل رو به آدرسی که از فروشنده هاست گرفتی تغییر بدی

ravand
یک شنبه 18 اسفند 1392, 08:11 صبح
شما اول با یه برنامه ی ساده کار کن ببین اصلا ایمیل ارسال میکنه یا نه؟

<?phpmail ( "ایمیل شما", "subject", "متن پیام ","From:ایمیل ارسال کننده" )?>

دانیال دزفولی
یک شنبه 18 اسفند 1392, 12:28 عصر
<?php mail ( "danielmerikhi@yahoo.com", "subject", "sssss ","From:danial@mehr.ir" )?>


هیچ ایمیلی ارسال نشد




;1986904']خوب دوست عزیز به نظر میاد شما تنظیمات php.ini رو انجام ندادی برای ارسال ایمیل شما باید فایل php.ini رو ویرایش کنی که منطقا شما به اون دسترسی نداری پس باید از تابع ini_set(); استفاده و سرور میل رو به آدرسی که از فروشنده هاست گرفتی تغییر بدی


چطوری این کارو بکنم؟
میشه یه مثلا ساده بذارید؟

دانیال دزفولی
یک شنبه 18 اسفند 1392, 16:00 عصر
کمکککککککککککککککککککککک

2undercover
یک شنبه 18 اسفند 1392, 16:23 عصر
http://barnamenevis.org/showthread.php?382492 (http://barnamenevis.org/showthread.php?382492-))

دانیال دزفولی
یک شنبه 18 اسفند 1392, 18:59 عصر
نفهمیدم چی شد ! :لبخند::لبخند::لبخند::لبخند:

دانیال دزفولی
یک شنبه 18 اسفند 1392, 19:11 عصر
رفتم اون senmail رو دانلود کردم
خودش رفت توی پوشه ی زمپ

بعدش اون فایل .ini سند میل رو تغییر دادم و





auth_username=danielmerikhi@yahoo.com
auth_password=**********

ایمیلم و پسوردش رو گذاشتم اینجا

بعدش اینا رو گذاشتم تو php.ini


; For Win32 only.
; http://php.net/smtp
; SMTP =smtp.mail.yahoo.com
; http://php.net/smtp-port
; smtp_port =465

و اون کد هایی که گذاشته بود


بعدشم


sendmail_path ="E:\xampp\sendmail\sendmail.exe -t"


آخر سر هم


این


توی فایل php که میخواستم باش ایمیل بفرستم:




<?php
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: sender@sender.com' . "\r\n";
mail("danielmerikhi@yahoo.com","subject Test","body Test",$headers);
?>

[younes]
یک شنبه 18 اسفند 1392, 20:09 عصر
شما باید در فایل php.ini اگر از هاست محلی استفاده میکنی نباید مقادیر smtp = localhost و smtp_prot =21 رو تغییر بدی و باید یه میل سرور نصب کنی که به اون مقادیر اشاره کنه و اگر از یک سرویس خدمات هاستینگ استفاده میکنی پس این منطقیه چون سرور مشترک پس به فایل php.ini دسترسی نخواهی داشت پس شما بایداز ini_set(); استفاده کنی و smtp رو برابر با آدرس سرور میلی که موقع خرید هاست به شما میدن استفاده کنی.


ini_set('SMTP','your mail server adress');

دانیال دزفولی
یک شنبه 18 اسفند 1392, 21:17 عصر
میشه بیشتر توضیح بدید؟

ini_set('SMTP','your mail server adress');

رو کجا بذارم؟


الآن ایراد اصلی کجاست؟

آخه من php کار نکردم

[younes]
یک شنبه 18 اسفند 1392, 22:28 عصر
ببنید شما در حالت عادی با تغییر php.ini پس از ذخیره ، باید سرور تون رو باید ریستارت کنید تا تغییرات اعمال بشه اما ini_set(); شما میتونید اون تغییرات رو موقتا توی اون برنامه اعمال کنی در واقع شما باید از اون تابع در ابتدای کد تون استفاده کنی .

اگه php رو روی localhost امتحان میکنید باید برای ارسال ایمیل یه میل سرور نصب کنید و php.ini رو با توجه به اون تنظیم کنید.
و اگه میخواهید روی سروری که خریداری کردید ارسال ایمیل رو تست کنید باید تنظیمات رو با استفاده از ini_set اعمال کنید چون به فایل php.ini دسترسی نخواهید داشت.

دانیال دزفولی
یک شنبه 18 اسفند 1392, 22:37 عصر
ممنون.......................