|
That depends on what you need. System.Threading.Timer is more light-weight, see if that fits your needs.
---
Year happy = new Year(2007);
|
|
|
|
|
hi all,
I don't know if i can express my problem right but i hope you can understand what i am looking for.
let's start...
for an application i am developing (windows application), there is a kind of mail servicing. This mail servicing should send mails to the clients on a certain condition that i test using data from the database.
I had a problem with the client in defining the template that the mail should be sent uppon. I asked the client to define a default template to be used in all the mails and by having it i can enter it in the code. The client asked if i can leave it undefined. Meaning he wants to be able to change the template whenever he wish. He needs a special page for that.
I was thinking of something like the word templates, but till now i have no idea what should i do. I had never worked with microsoft office tools in C# coding. I think it is not so hard...
anybody can give me a clue.
by the way i tried searching the code project for a start but i couldn't find any article that helps. (maybe i didn't search correctly)
i didn't try googling yet cause, concerning code, i believe that what i can't find in codeproject i can't find anywhere.
Thanks for any help given.
|
|
|
|
|
You want them to be able to write a template for email text ? Just define special keys for the values you want to insert, such as <MAILTO>, and then you can use regex to replace them with the values you have for each email.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
Christian Graus wrote: You want them to be able to write a template for email text ?
That's right..
Christian Graus wrote: Just define special keys for the values you want to insert, such as <mailto>,
That is what i was thinking of doing. but i don't know how to insert a template creating tool inside my application or coding one or something like that. and i don't know how to define those special keys.
Christian your always the savor in those situations thanks
|
|
|
|
|
Well, your template will just be a string. Your keys will be things that a user won't ever type otherwise, so I presented it looking like a node: <mailto>, but it could be $MAILTO, or even MAILTO if you like. The point is to come up with something consistent, and the user will just type a template into a textbox, such as
$POSTALADDRESS
Dear $MAILTO,
Thank you for downloading a demo version of $THEPROGRAM. As you're aware, this demo will expire on $EXPIREDATE. We hope you've enjoyed the demo, if you have any questions, don't hestitate to ask us, your designated contact at $COMPANYNAME is $CONTACTEMAIL.
Regards,
$MAILFROM
And so, you just load that into a string, and for each email, make a copy, then call the replace method on the string class to replace each of the keys with the value for that email.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
ok man thanks a lot,
one more question please
am i able to insert a background picture or a logo or something like that.
thanks a lot
|
|
|
|
|
Well, you're rendering it, so you can render it over a bitmap if you want to. I expect you can also insert a bitmap into an email, although I'm not exactly sure.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
I suppose he wants to send an html formated mail message with a custom background.
You can use the approach above, but if you need preview you will need to use something like BrowserControl to render how the html formatted message will look like.
If this is the question you can follow the steps below :
1. Present the user with some relevant interface to create the templates.
2. Define some kind of macro language so you can insert the variables you need in the text.
3. Make the text html, save it temporarly (or not temporarly) on the hard drive and load it to an WebBrowse control so the user can see the result, before save the template.
Hope it helps.
|
|
|
|
|
Hi friends,
In my C#.Net application i am trying to sort the gridview contents by using the following line.
dgAddressBook.Sort(dgAddressBook.Columns[23], ListSortDirection.Ascending);
but i am receiving the following error. Please help me to resolve this problem.
Error:
The original exception is: DataGridView control must be bound to an IBindingList object to be sorted. at System.Windows.Forms.DataGridView.SortDataBoundDataGridView_PerformCheck(DataGridViewColumn dataGridViewColumn)"
Thanks in Advance,
Regards,
Prya
|
|
|
|
|
|
Firing a DataGridView.Sort() on an unbound column generates an error.
Try use a bound column which is used to calculate the unbound one and fire the sort on that column. If you do not have one, create a dummy one.
SkyWalker
|
|
|
|
|
hi,
Thanks a lot. but i didnt understand bound and unbound columns. i am providing my code. can u pls. help me.
Code:
ICollection userDetails = new ArrayList();
//Here GetAllUsers is a function which used to get all the details of the users in domain
userDetails=GetAllUsers(DEFAULTDOMAIN, domainUser, domainPassword);
dgAddressBook.DataSource = userDetails;
dgAddressBook.Sort(dgAddressBook.Columns[23], ListSortDirection.Ascending);
if (userDetails != null)
{
dgAddressBook.Columns["Initials"].Visible = false;
dgAddressBook.Columns["PhysicalDeliveryOfficeName"].Visible = false;
dgAddressBook.Columns["GivenName"].Visible = false;
dgAddressBook.Columns["Country"].Visible = false;
dgAddressBook.Columns["Result"].Visible = false;
dgAddressBook.Columns["Enabled"].Visible = false;
dgAddressBook.Columns["HomePage"].Visible = false;
dgAddressBook.Columns["DisplayName"].Visible = false;
dgAddressBook.Columns["Id"].Visible = false;
dgAddressBook.Columns["UserName"].Visible = false;
dgAddressBook.Columns["IsTotallyLoaded"].Visible = false;
dgAddressBook.Columns["IsDistributed"].Visible = false;
dgAddressBook.Columns["dbReturnCode"].Visible = false;
dgAddressBook.Columns["dbReturnMessage"].Visible = false;
dgAddressBook.Columns["ManagerName"].Visible = false;
dgAddressBook.Columns["EmpType"].Visible = false;
dgAddressBook.Columns["PostOfficeBox"].Visible = false;
dgAddressBook.Columns["State"].Visible = false;
dgAddressBook.Columns["FirstName"].DisplayIndex = 0;
dgAddressBook.Columns["LastName"].DisplayIndex = 1;
dgAddressBook.Columns["Description"].DisplayIndex = 2;
dgAddressBook.Columns["TelephoneNumber"].DisplayIndex = 3;
dgAddressBook.Columns["StreetAddress"].DisplayIndex = 4;
dgAddressBook.Columns["City"].DisplayIndex = 5;
dgAddressBook.Columns["FirstName"].HeaderText = "First Name";
dgAddressBook.Columns["LastName"].HeaderText = "Last Name";
dgAddressBook.Columns["Description"].HeaderText = "Designation";
dgAddressBook.Columns["StreetAddress"].HeaderText = "Street";
dgAddressBook.Columns["TelephoneNumber"].HeaderText = "Mobile Phone";
dgAddressBook.Columns["AdditionalPhoneNumbers"].Width = 130;
dgAddressBook.Columns["DateOfJoin"].HeaderText = "Date of Join";
dgAddressBook.Columns["PersonalEmail"].HeaderText = "Personal E-mail";
dgAddressBook.Columns["Email"].HeaderText = "Office E-mail";
Thanks in Advance,
Regards,
Prya
|
|
|
|
|
I'm able to connect to a pop3 email using the tcpclient and i'm also able to get the email, i'm having problem when someone send me an attachment like an image or a .doc file. How can i decode the attachment from the email and save it to my computer?
|
|
|
|
|
I think you should consider using regular expressions to identify the image / doc or whatever comes with the mail.
You will however need to read some rfc's before starting ...
|
|
|
|
|
I can do the regular expression since the email tells you what type of mime is, and what is rfc's? do you have any example that I can follow?
|
|
|
|
|
hi all,
how to get the browser's status bar control in asp.net
thanking u
bye
|
|
|
|
|
kalyan_2416 wrote: how to get the browser's status bar control in asp.net
You don't.
Use the window.status property in Javascript to set the text of the status bar.
---
Year happy = new Year(2007);
|
|
|
|
|
|
|
This should be an easy on but I can't seem to find the answer. How do you return the index of an item selected by a user from the ListView control?
Thanks
|
|
|
|
|
.SelectedIndices[0]
/ravi
|
|
|
|
|
Thanks, this works but when the first item in the listview is selected I get the following.
InvalidArgument=Value of '0' is not valid for 'index'.
Parameter name: index
???
|
|
|
|
|
karl1701 wrote: InvalidArgument=Value of '0' is not valid for 'index'.
Parameter name: index
That implies no item is selected. Try this (intentionally verbose) example:
int GetFirstSelectedItem
(ListView theListView)
{
int nIndexOfFirstSelectedItem = -1;
SelectedListViewItemCollection selectedItems = theListView.SelectedItems;
if (selectedItems.Count > 0) {
ListViewItem firstSelectedItem = selectedItems[0];
nIndexOfFirstSelectedItem = firstSelectedItem.Index;
}
return nIndexOfFirstSelectedItem;
} /ravi
|
|
|
|
|
Thanks, it seems that the problem was I was checking the index when the SelectedIndexChanged was fired. Whenever I made another selection I would receive the error. I switched the code to the Click event and now it works fine.
Thanks for your help
Karl
|
|
|
|
|
listView1.SelectedItems
-> listView1.SelectedItems[0].Index
^^ lg
|
|
|
|