PDA

View Full Version : ارسال و دریافت نامه الکترونیکی



fafa_na
دوشنبه 12 بهمن 1388, 14:37 عصر
سلام
بچه ها میشه با تابع میل یه فایلم ارسال کرد؟ همون قابلیت اتچ خودمون
اگه نمیشه تابع برای این کار وجود دارد؟
مرسسسسسسسسسسسسی

Lagon666
دوشنبه 12 بهمن 1388, 21:22 عصر
همه چیز در مورد تابع میل، با یه مشت مثال و نمونه (با اتچ و بی اتچ):


http://php.net/manual/en/function.mail.php


این هم یه نمونه که توی همون صفحه دیدم که چشممو گرفت:


<?php
$to = $_POST['to'];
$email = $_POST['email'];
$name = $_POST['name'];
$subject = $_POST['subject'];
$comment = $_POST['message'];

$To = strip_tags($to);
$TextMessage =strip_tags(nl2br($comment),"<br>");
$HTMLMessage =nl2br($comment);
$FromName =strip_tags($name);
$FromEmail =strip_tags($email);
$Subject =strip_tags($subject);

$boundary1 =rand(0,9)."-"
.rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
$boundary2 =rand(0,9)."-".rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);


for($i=0; $i < count($_FILES['youfile']['name']); $i++){
if(is_uploaded_file($_FILES['fileatt']['tmp_name'][$i]) &&
!empty($_FILES['fileatt']['size'][$i]) &&
!empty($_FILES['fileatt']['name'][$i])){

$attach ='yes';
$end ='';

$handle =fopen($_FILES['fileatt']['tmp_name'][$i], 'rb');
$f_contents =fread($handle, $_FILES['fileatt']['size'][$i]);
$attachment[]=chunk_split(base64_encode($f_contents));
fclose($handle);

$ftype[] =$_FILES['fileatt']['type'][$i];
$fname[] =$_FILES['fileatt']['name'][$i];
}
}

/************************************************** *************
Creating Email: Headers, BODY
1- HTML Email WIthout Attachment!! <<-------- H T M L ---------
************************************************** *************/
#---->Headers Part
$Headers =<<<AKAM
From: $FromName <$FromEmail>
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="$boundary1"
AKAM;

#---->BODY Part
$Body =<<<AKAM
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="$boundary1"

This is a multi-part message in MIME format.

--$boundary1
Content-Type: text/plain;
charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$TextMessage
--$boundary1
Content-Type: text/html;
charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$HTMLMessage

--$boundary1--
AKAM;

/************************************************** *************
2- HTML Email WIth Multiple Attachment <<----- Attachment ------
************************************************** *************/

if($attach=='yes') {

$attachments='';
$Headers =<<<AKAM
From: $FromName <$FromEmail>
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="$boundary1"
AKAM;

for($j=0;$j<count($ftype); $j++){
$attachments.=<<<ATTA
--$boundary1
Content-Type: $ftype[$j];
name="$fname[$i]"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="$fname[$j]"

$attachment[$j]

ATTA;
}

$Body =<<<AKAM
This is a multi-part message in MIME format.

--$boundary1
Content-Type: multipart/alternative;
boundary="$boundary2"

--$boundary2
Content-Type: text/plain;
charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$TextMessage
--$boundary2
Content-Type: text/html;
charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$HTMLMessage

--$boundary2--

$attachments
--$boundary1--
AKAM;
}

/************************************************** *************
Sending Email
************************************************** *************/
$ok=mail($To, $Subject, $Body, $Headers);
echo $ok?"<h1> Mail Sent</h1>":"<h1> Mail not SEND</h1>";
?>

امیـرحسین
سه شنبه 13 بهمن 1388, 01:37 صبح
من واقعا PHPMailer (http://phpmailer.worxware.com/) رو دوست دارم که باهاش میشه همه مدل ایمیل رو با چند خط کد ارسال کرد و با هدرها HTTP سر و کله نزد....

fafa_na
سه شنبه 13 بهمن 1388, 07:49 صبح
سلام

اول از کمکتون واقعا متشکرم.من فایلی را که فرستادید را مطابق برنامه خودم درست کردم .غرض از مزاحمت مجدد اینکه پیغام خطا
Warning: mail() [function.mail (http://localhost/na/function.mail)]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\na\m.php on line 235

میده!!!!!!!!!
آیا بخاطر عدم اتصال به اینترنت یا ؟؟؟؟؟؟؟؟
اینم فایلم.بازم هم بخاطر کمکتون تشکر میکنم

Lagon666
سه شنبه 13 بهمن 1388, 12:22 عصر
وقتی داری روی لوکال کار می کنی اگه میخای میل بزنی باید یه سرور میل (مثلا Mercury) اجرا بکنی. یا اینکه بری توی php.ini و سرور میل رو از localhost به هر چیزی که میخوای تغییر بدی.

اگه هاست داری روی هاست امتحان کن، مطمئنا کار می کنه.

امیـرحسین
سه شنبه 13 بهمن 1388, 21:45 عصر
روی آیکون wamp کلیک کنید و گزینه Put Online رو بزنید. فکر کنم واسه اون باشه...

fafa_na
پنج شنبه 15 بهمن 1388, 12:13 عصر
سلام
يعني كد ايراد نداره.
من
put online
رو پيدا نكردم

امیـرحسین
پنج شنبه 15 بهمن 1388, 13:29 عصر
آیکون wamp در tary bar ، کنار ساعت ویندوز. روش کلیک کنید. فکر کنم اولین گزینه از پایین باشه

fafa_na
دوشنبه 19 بهمن 1388, 15:13 عصر
سلام
خوب چرا مال من ندره همچين گزينه اي رو!؟؟؟؟؟؟؟؟؟؟؟
ببين اينم عكسش

امیـرحسین
دوشنبه 19 بهمن 1388, 20:05 عصر
یه اختلاف فاحشتر بین عکسی که من اتچ کردم و عکس شما، اون نوشته عمودی کنار منو هست. نسخه ومپ شما خیـــــلی قدیمیه....

fafa_na
سه شنبه 20 بهمن 1388, 08:04 صبح
واقعا ممنونم از اينكه براي همديگه وقت ميزاريد