PDA

View Full Version : آموزش: اتچ کردن فایل به ایمیل بدون نیاز به بار گذاری آن روی سرور



iman_ad
چهارشنبه 04 فروردین 1389, 05:36 صبح
قبلا برای اینکه یک فایل به ایمیل اتچ کنم اول فایلی که توسط کنترل فایل آپلود تو فرم از کاربر دریافت می کردم روی سرور بارگذاری می کردم و بعد از ارسال ایمیل فایل پاک می کردم.
چند روز پیش یک مقاله در این ضمینه دیدیم که احساس کردم شاید برای بقیه دوستان هم مفید باشه.
می شه مستقیم فایل دریافتی از کنترل فایل-آپلود ارسال کرد.
از دات نت 2 به بعد یک constructor به کلاس attachment اضافه شده که از stream پشتیبانی می کنه، شاید دوستان می دونستن ولی برای کسانی که فایل اول روی سرور بار گذاری می کردند خبر خوبی.
این لینک منبع (http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=412)
اینم نمونه کد


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default-CS.aspx.cs" Inherits="Default_CS" %>
<!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 id="Head1" runat="server">
<title>Sending In-Memory Attachments</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Send" OnClick="Button1_Click" /></div>
</form>
</body>
</html>





using System;
using System.Net.Mail;
using System.IO;
public partial class Default_CS : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string toAddress = "you@yourprovider.com";
string fromAddress = "you@yourprovider.com";
string mailServer = "smtp.yourprovider.com";
MailMessage myMailMessage = new MailMessage();
myMailMessage.To.Add(toAddress);
myMailMessage.From = new MailAddress(fromAddress);
myMailMessage.Subject = "Test Message";
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
Attachment myAttachment = new Attachment(FileUpload1.FileContent, fileName);
myMailMessage.Attachments.Add(myAttachment);
SmtpClient mySmtpClient = new SmtpClient(mailServer);
mySmtpClient.Send(myMailMessage);
}
}
}

Behrouz_Rad
چهارشنبه 04 فروردین 1389, 12:10 عصر
در این حالت هم بارگذاری میشه. در حافظه ی سرور قرار می گیره. اما وجود فیزیکی نداره.

موف باشید.