PDA

View Full Version : فرستادن فایل ضمیمه در ایمیل با استفاده از SMTP



earse+erse
شنبه 05 شهریور 1390, 00:55 صبح
سلام
من تازه php رو شروع کردم

میخوام یکی از فایل های سرور خودم رو یا استفاده از php و SMTP میل کنم.
جیتجو کردم و این فایل رو پیدا کردم اما وقتی میخوام در این خط فایلی رو ضمیمه کنم:


$mail->AddAttachment("http://a.com//uploads/a.zip"); // add attachments

با این اخطار مواجه میشم:

Could not access file: http://a.com//uploads/a.zip Message has been sent

و فایل ضمیمه نمیشه.

اگه کسی میتونه این فایلی که ضمیمه کردم و طوری تغییر بده که فایل را بتونه ضمیمه کنه خواهش میکنم این کارو برام انجام بده.
اگه کسی هم با php و SMTP میدونه چه جوری میشه این کاری رو که میخوام ، انجام میشه لطفا راهنماییم کنه

با تشکر

رضا قربانی
شنبه 05 شهریور 1390, 15:26 عصر
<?php
//define the receiver of the email
$to = 'youraddress@example.com';
//define the subject of the email
$subject = 'Test email with attachment';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
//read the atachment file contents into a string,
//encode it with MIME base64,
//and split it into smaller chunks
$attachment = chunk_split(base64_encode(file_get_contents('attac hment.zip')));
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello World!!!
This is simple text email message.

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>

--PHP-alt-<?php echo $random_hash; ?>--

--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/zip; name="attachment.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

<?php echo $attachment; ?>
--PHP-mixed-<?php echo $random_hash; ?>--

<?php
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>

earse+erse
شنبه 05 شهریور 1390, 16:16 عصر
سلام ممنون از توجهتون

ولی من فکر نمیکنم این کد از طریق SMTP فایل رو ضمیمه کنه.
و ایمیلی هم که میفرسته به پوشه spam میره.

اگه بیشتر راهنمایی کنید ممنون میشم

رضا قربانی
شنبه 05 شهریور 1390, 16:25 عصر
ولی من فکر نمیکنم این کد از طریق SMTP فایل رو ضمیمه کنه.
آیا تست کردید ؟

amin1softco
شنبه 05 شهریور 1390, 16:42 عصر
آیا تست کردید ؟
کد آقای رضا قربانی (http://barnamenevis.org/member.php?151175-%D8%B1%D8%B6%D8%A7-%D9%82%D8%B1%D8%A8%D8%A7%D9%86%DB%8C) کاملاً درسته ولی خوب راست میگه دیگه بنده خدا !!!!! این با تابع میله خوده php این کارو انجام میده و
و برای اینکه بدونید بیشتر هاست های رایگان تابع مایلشون غیر فعاله و پورت smtp رو بستند و شما باید اکانت پرمیم بگیرید تا بتونید از این طریق میل ارسال کنید ولی شما با phpmailer می تونید در حالت local این کار را انجام بدید............

earse+erse
شنبه 05 شهریور 1390, 17:03 عصر
کد آقای رضا قربانی (http://barnamenevis.org/member.php?151175-%D8%B1%D8%B6%D8%A7-%D9%82%D8%B1%D8%A8%D8%A7%D9%86%DB%8C) کاملاً درسته ولی خوب راست میگه دیگه بنده خدا !!!!! این با تابع میله خوده php این کارو انجام میده و
و برای اینکه بدونید بیشتر هاست های رایگان تابع مایلشون غیر فعاله و پورت smtp رو بستند و شما باید اکانت پرمیم بگیرید تا بتونید از این طریق میل ارسال کنید ولی شما با phpmailer می تونید در حالت local این کار را انجام بدید............
بنده خورم اکانت پرمیم میفروشم
من میخوام از smtp اینکارو انجام بدم نه phpmailer ، آیا این امکان وجود نداره؟
ضمیمه اول رو که فرستادم ببینین، ولی همون ارورو میده
خواهش میکنم اگه کسی میدونه بگه شدیدا نیاز دارم.

amin1softco
شنبه 05 شهریور 1390, 17:17 عصر
عزیزه دلم phpmailer یک ماژوله که ما می تونی باهاش از طریق smtp یا php میلتون رو با اتاچ و به صورت استاندارد شده ارسال کنید. مثلاً با اکانت جیمیل
اگه یک سرچی بزنید خوتون متوجه می شید.....