Email with Attachment

Posted by Venkat | Labels:

Now we will see , how to send an attachment to the email.

for the you have to create an instance for Attachment class and pass the filename and specify the media type information for an email message attachements and set the ContentDisposition which specify the file type whether its txt , doc, gif,jpg etc..,

Import NameSpace

using System.Net.Mail;
using System.Net.MIME;
using System.Net;

Code

try
{

MailMessage mail = new MailMessage();

mail.To.Add("venkat@gmail.com");

mail.From = new MailAddress("admin@Support.com");

mail.Subject = "Testing Email Attachment";

string file = Server.MapPath("~/files/findemai_ontextfile.txt");

Attachment attachFile = new Attachment(file, MediaTypeNames.Application.Octet);

ContentDisposition disposition = attachFile.ContentDisposition;

mail.Attachments.Add(attachFile);

SmtpClient smtp = new SmtpClient();

smtp.Host = "smtp.gmail.com";

smtp.EnableSsl = true;

smtp.Credentials = new NetworkCredential("xxxxxxx@gmail.com", "*********");
s;

smtp.Send(mail);

}

catch (Exception ex)
{

Response.Write(ex.Message);

}

This link helps you :
http://msdn.microsoft.com/en-us/library/system.net.mail.attachment.aspx

Checkboxlist sample code

Posted by Venkat | Labels: ,

Now we are going to discuss about the Checkbox list Control so Checkboxlist allows user to select Multiple values , we will see how to retrieve the selected values from the Checkboxlist.

Here is the HTML Code


<asp:CheckBoxList ID="cblPlanets" runat="server" Width="109px">
<asp:ListItem Value="1">Mercury</asp:ListItem>
<asp:ListItem Value="2">Venus</asp:ListItem>
<asp:ListItem Value="3">Earth</asp:ListItem>
<asp:ListItem Value="4">Mars</asp:ListItem>
<asp:ListItem Value="5">Jupiter</asp:ListItem>
<asp:ListItem Value="6">Saturn</asp:ListItem>
<asp:ListItem Value="7">Uranus</asp:ListItem>
<asp:ListItem Value="8">Neptune</asp:ListItem>
</asp:CheckBoxList>
in Code behind , then place one label control to get the selectedvalue of checkboxlist

C# SOURCE

protected void btnSubmit_Click(object sender, EventArgs e)
{
lblText.Text = "You selected: ";

foreach (ListItem li in cblPlanets.Items)
{
if (li.Selected == true)
{
lblText.Text = lblText.Text += "~" + li.Text;
}
}
}

"The state information is invalid for this page and might be corrupted" With ASP.NET AJAX

Posted by Venkat | Labels:

If you got this error while you working with Asp.Net AJAX.

This seems to be caused by Firefox's methods for saving session information in its cache. There is many way to solve this problem it’s depending on how extensive you want to disable the cache. In my case, I just wanted to do it on one page, so at the top of Page_Load I added:

Response.Cache.SetNoStore();


Set the page Declaration with

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Page.aspx.cs" Inherits="Main" Title=My Home" EnableViewStateMac ="false" EnableSessionState="True" EnableEventValidation ="false" ValidateRequest ="false" ViewStateEncryptionMode ="Never" %>
You can also add with web.config file

<pages validaterequest="false" enableeventvalidation="false" viewstateencryptionmode="Never">
</pages>

DeCompress the file using asp.net

Posted by Venkat | Labels: , ,

In previous post we seen how to compress the file this will helpful when the file is large you can
compress the file.

Now we will see how to Decompress the file

Button_Click event.


DecompressFile(Server.MapPath("~/Decompressed/FindEmai_onTextfile.zip"),Server.MapPath("~/Decompressed/FindEmai_onTextfile.txt"));

Here i just swap the filename so it may confuse so use some different path(Folder) or filename

Decompress Method

public static void DecompressFile(string sourceFileName, string destinationFileName)
{

FileStream outStream;

FileStream inStream;

//Check if the source file exist.

if (File.Exists(sourceFileName))
{

//Read teh input file

inStream = File.OpenRead(sourceFileName);

//Check if the destination file exist else create once

outStream = File.Open(destinationFileName, FileMode.OpenOrCreate);

//Now create a byte array to hold the contents of the file

//Now increase the filecontent size more since the compressed file

//size will always be less then the actuak file.

byte[] fileContents = new byte[(inStream.Length * 100)];

//Read the file and decompress

GZipStream zipStream = new GZipStream(inStream, CompressionMode.Decompress, false);

//Read the contents to this byte array

int totalBytesRead = zipStream.Read(fileContents, 0, fileContents.Length);

outStream.Write(fileContents, 0, totalBytesRead);

//Now close all the streams.

zipStream.Close();

inStream.Close();

outStream.Close();

}

}

Compress the file using asp.net

Posted by Venkat | Labels: , ,

Good day to all today we are going to discuss about how to compress the file using asp.net application , ie: for compression there are some third party tools like CSharpZip (not sue about the name of the tools..) ,gzip, etc..

Asp.net has inbuilt with Compression ie: derive from the Class

using System.IO.Compression;

There are two compression derived from this namespace.
1) Gzipstream
2) Deflate stream

Deflate seems to be must faster than the Gzipstream but Deflate doesn't uncompress other formats , but Gzipstream decompress the other files like winzip, winrar .

Now we are going to see Gzipstream it has a class which contains filename and compression mode , Compression mode has two values Compress and Decompress.

Button_ClickEvent

CompressFile(Server.MapPath("~/Decompressed/FindEmai_onTextfile.txt"),Server.MapPath("~/Decompressed/FindEmai_onTextfile.zip"));

Here you have to give two parameter first one is Sourcefilename to be compressed , second is path where you have to place the compressed file. it will check if the file exists the compressed file has been placed there, else it will create on the fly.

Method definition

public static void CompressFile(string sourceFileName, string destinationFileName)
{

FileStream outStream;

FileStream inStream;

//Check if the source file exist.

if (File.Exists(sourceFileName))
{

//Read teh input file

//Check if the destination file exist else create once

outStream = File.Open(destinationFileName, FileMode.OpenOrCreate);

GZipStream zipStream = new GZipStream(outStream, CompressionMode.Compress);

//Now create a byte array to hold the contents of the file

byte[] fileContents = new byte[inStream.Length];

//Read the contents to this byte array

inStream.Read(fileContents, 0, fileContents.Length);

zipStream.Write(fileContents, 0, fileContents.Length);

//Now close all the streams.

zipStream.Close();

inStream.Close();

outStream.Close();

}

}

Specified string is not in the form required for an e-mail address

Posted by Venkat | Labels:

This error cause while you are working with .net1.1.1 ie" Sytstem.Web.Mail; if we send the email to multiple person we use like this

string toemail = "xxxxx@yahoo.com;yyyyyy@gmail.com;zzzzzz@hotmail.com;";

so this works there because we used semicolon to separate the emailID

But in .net 2.0 System.Net.Mail

if we use the same way (ie: using semicolon to differentiate the emailID) it will cause to give this error.

"Specified string is not in the form required for an e-mail address"

so the modified string

string toemail = "xxxxx@yahoo.com,yyyyyy@gmail.com,zzzzzz@hotmail.com";

Get All Files from Directories and Sub-Directories - Vb.NET

Posted by Venkat | Labels: , ,

Here i have to discuss about how to get all the files of Directories and SubDirectories.

Generally we know how to get the files from From directory

Vb.NET


Imports System.IO

Dim position as integer = 1

Public Sub GetFiles(ByVal path As String)

If File.Exists(path) Then

' This path is a file

ProcessFile(path)

ElseIf Directory.Exists(path) Then

' This path is a directory

ProcessDirectory(path)

End If

End Sub





' Process all files in the directory passed in, recurse on any directories

' that are found, and process the files they contain.

Public Sub ProcessDirectory(ByVal targetDirectory As String)

' Process the list of files found in the directory.

Dim fileEntries As String() = Directory.GetFiles(targetDirectory)

For Each fileName As String In fileEntries

ProcessFile(fileName)

Next



' Recurse into subdirectories of this directory.

Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)

For Each subdirectory As String In subdirectoryEntries

ProcessDirectory(subdirectory)

Next

End Sub



' Insert logic for processing found files here.

Public Sub ProcessFile(ByVal path As String)

Dim fi As New FileInfo(path)

Response.Write("File Number " + position.ToString() + ". Path: " + path + "
")

position += 1

End Sub

Give the path like this

GetFiles("C:\Test\")

And there is a simple way to get all files like this

Dim di as new IO.DirectoryInfo("C:\uploadfiles")
Dim finfo as IO.FileInfo() = di.GetFiles("*.*",IO.SearchOption.AllDirectories)


Get All files of Directories and SubDirectories - C#

Posted by Venkat | Labels: , ,

Here i have to discuss about how to get all the files of Directories and SubDirectories.

Generally we know how to get the files from From directory

ex: Directory.GetFiles("path");

C# Code:


using System.IO;

private int position = 1;

public void GetFiles(string path)

{

if (File.Exists(path))

{

// if file Exists

ProcessFile(path);

}

else if (Directory.Exists(path))

{

// if Directory exists

ProcessDirectory(path);

}

}

public void ProcessDirectory(string targetDirectory)

{

string[] fileEntries = Directory.GetFiles(targetDirectory);

foreach (string fileName in fileEntries)

ProcessFile(fileName);

string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory);

foreach (string subdirectory in subdirectoryEntries)

ProcessDirectory(subdirectory);

}

public void ProcessFile(string path)

{

FileInfo fi = new FileInfo(path);

Response.Write("File Number " + position.ToString() + ". Path: " + path + "
"
);

position++;

}


Give File Path like this


GetFiles("C:\\Test\\");

Validation which accept( empty , numeric or Float values)

Posted by Venkat | Labels: ,

Now we have to discuss about the validationexpression ie:

the textbox should accept empty values , numeric ( float ) .

Implementation Code :

^\d*\.?\d*$

HTML


<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ErrorMessage="Invalid format" ControlToValidate="TextBox3" ValidationExpression="^\d*\.?\d*$" ValidationGroup="d"></asp:RegularExpressionValidator>
<asp:Button ID="Button5" runat="server" Text="Button" ValidationGroup="d" />
Matches

( ) -> empty value
4535
520.20
2.54

Non-Matches

21.0dfdf
47854
Rpks

PayOffers.in