|
You can use the MailMessage class documented at http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwebmailmailmessageclasstopic.asp[^] along with the SmtpServer class documented at http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebMailSmtpMailClassTopic.asp[^] which uses CDO, which is installed as a client by default on Windows 2000, XP, 2003, and newer. This class will work with .NET 1.0 and newer.
If you want more control over the content of mail you can use the new mail classes in .NET 2.0, document at http://msdn2.microsoft.com/library/System.Net.Mail[^].
Note that sending mail is different than receiving it. SMTP transfers mail between servers and from clients to servers, but protocols like POP and IMAP are what you typically use from a client to get mail from a server. What you see on Brinkster's site is a web interface. You need to see if they even allow for POP or IMAP. If they do, you can get libraries to get email and delete it (you're other desire from your second sentance).
Just search for "C# POP" or "C# IMAP" to find examples. This site should also have several tutorials and even source code. Just use the article search at the top of every page below the logo to search.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
hi guys,
i'm writing a software to control some telnet server, to achieve a sort of batch control for that. i got the communication running and i am able to send command bytewise to the server. the main problem are some menus where it is neccessary to press down the ENTER KEY (when logged in via commandline) to acknowledge. i ain't got any idea how to send the ENTER command to the telnet server. here is my sendcode
Byte[] byteDateLine = Encoding.ASCII.GetBytes(sendBox.Text.ToCharArray());
but how do i convert the enterkey keyvalue to byte, that it is recognized as a pressed enterkey?
can anybody help me?
|
|
|
|
|
You need to send a new line and/or carriage return character depending on the server. Most times just encode the \n character like in the following example:
byte[] data = Encoding.ASCII.GetBytes("dir\n"); The characters follow:- \n - new line
- \r - carriage return
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
I develop web service with extensions that encrypt and compress some parameters of web method.
So I need get certain node("soap:Envelope/soap:Body/SendServiceDataInHeader/Body") in SOAP
message(got by serialization of web method) with XPath expression.
Here is SOAP message:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ProtocolData xmlns="http://tempuri.org/">
<IsEncrypted>true</IsEncrypted>
<IsCompressed>true</IsCompressed>
</ProtocolData>
</soap:Header>
<soap:Body>
<SendServiceDataInHeader xmlns="http://tempuri.org/">
<To>zhornick@mail.ru</To>
<Cc />
<Subject>Subj</Subject>
<Body>Body</Body>
</SendServiceDataInHeader>
</soap:Body>
</soap:Envelope>
I tried with below code snippet but it doesn't work. It may be due to default namespace.
XmlDocument xd = new XmlDocument();
xd.Load("d:\\x.xml");
XmlNamespaceManager nm = new XmlNamespaceManager(xd.NameTable);
nm.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
nm.AddNamespace(String.Empty, "http://tempuri.org/");
XmlNode n =
xd.SelectSingleNode("soap:Envelope/soap:Body/SendServiceDataInHeader/Body", nm);
Of course I can get this node by writing:
XmlNode n =
xd.SelectSingleNode("soap:Envelope/soap:Body",
nm).FirstChild.FirstChild.NextSibling.NextSibling;
but it is not reliable and I want through direct XPath expression.
Help me resolve task please!
Andriy Zhornyk
|
|
|
|
|
IIRC you can fix this by adding a 'fake' namespace entry for the default.
nm.AddNamespace("foo", "http://tempuri.org/");
xd.SelectSingleNode("soap:Envelope/soap:Body/foo:SendServiceDataInHeader/foo:Body", nm); :->
xacc-ide 0.0.99-preview7 now with C#, C, C++, IL, XML, Nemerle, IronPython, Perl, Caml, SML, Ruby, Flex, Yacc, Java, Javascript, Lua, Prolog and Boo highlighting support!
|
|
|
|
|
Thank, it works.
Andriy Zhornyk
|
|
|
|
|
Glad I could help, it's one of those issues that can haunt you for days
xacc-ide 0.0.99-preview7 now with C#, C, C++, IL, XML, Nemerle, IronPython, Perl, Caml, SML, Ruby, Flex, Yacc, Java, Javascript, Lua, Prolog and Boo highlighting support!
|
|
|
|
|
hi all, can someone please help me to use this class in my application.
this is what i have so far.
<br />
[DllImport("Netapi32.dll")]<br />
extern static int NetLocalGroupAddMembers(<br />
[MarshalAs(UnmanagedType.LPWStr)] string servername,<br />
[MarshalAs(UnmanagedType.LPWStr)] string groupname,<br />
int level,<br />
ref LOCALGROUP_MEMBERS_INFO_3[] buf,<br />
int totalentries<br />
);<br />
<br />
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]<br />
public struct LOCALGROUP_MEMBERS_INFO_3<br />
{<br />
public string domainandname;<br />
}<br />
<br />
private enum NERR_GROUP_MEMBER_ADD<br />
{<br />
NERR_Success = 0,<br />
<br />
NERR_GroupNotFound = 1,<br />
<br />
ERROR_ACCESS_DENIED = 2,<br />
<br />
ERROR_NO_SUCH_MEMBER = 3,<br />
<br />
ERROR_MEMBER_IN_ALIAS = 4,<br />
<br />
ERROR_INVALID_MEMBER = 5<br />
}<br />
then i call it with this
<br />
public bool NetLocalGroupAddMember(string groupname, string username)<br />
{ <br />
LOCALGROUP_MEMBERS_INFO_3 member = new LOCALGROUP_MEMBERS_INFO_3();<br />
member.domainandname = Environment.UserDomainName + @"\" + username;<br />
<br />
LOCALGROUP_MEMBERS_INFO_3[] members = new LOCALGROUP_MEMBERS_INFO_3[] { member };<br />
<br />
int retVal = NetLocalGroupAddMembers(SERVER_NAME, UserManager.DEFAULT_GROUPNAME, 3, ref members, 1);<br />
<br />
if (retVal != (int)NERR_GROUP_MEMBER_ADD.NERR_Success)<br />
{<br />
MessageBox.Show("Error Adding Member to Group",<br />
"Error",<br />
MessageBoxButtons.OK,<br />
MessageBoxIcon.Error);<br />
return false;<br />
}<br />
return true;<br />
}<br />
this returns the messagebox, and the retVal is 1387
this is the interface
<br />
NET_API_STATUS NetLocalGroupAddMembers(<br />
LPCWSTR servername,<br />
LPCWSTR groupname,<br />
DWORD level,<br />
LPBYTE buf,<br />
DWORD totalentries<br />
);<br />
i was unsure about the LPBYTE buf, whether it should be an IntPtr or not, if so, i cannot figure out the syntax.
can someone please help with this.
kind regards,
g00fy
|
|
|
|
|
|
yes i have.
the MS API says that the buf is '... The buf parameter points to an array of LOCALGROUP_MEMBERS_INFO_3 structures. ...'
thats why i tried the LOCALGROUP_MEMBERS_INFO_3[] in the signature
i think the problem is that the buf should be an IntPtr and not what is in that signature, but i need someone to clarify this. if it is suppose to be an IntPtr then how do i allocate the size of the LOCALGROUP_MEMBERS_INFO_3 as byte[] in mem ?
this is what i have now
<br />
[DllImport("Netapi32.dll")]<br />
extern static int NetLocalGroupAddMembers(<br />
[MarshalAs(UnmanagedType.LPWStr)] string servername,<br />
[MarshalAs(UnmanagedType.LPWStr)] string groupname,<br />
int level,<br />
ref LOCALGROUP_MEMBERS_INFO_3 buf,<br />
int totalentries<br />
);<br />
<br />
public bool NetLocalGroupAddMember(string groupname, string username)<br />
{ <br />
LOCALGROUP_MEMBERS_INFO_3 member = new LOCALGROUP_MEMBERS_INFO_3();<br />
member.domainandname = Environment.UserDomainName + @"\" + username;<br />
<br />
<br />
<br />
int retVal = NetLocalGroupAddMembers(SERVER_NAME, LocalUserManager.DEFAULT_GROUPNAME, 3, ref member, 1);<br />
<br />
if (retVal != (int)NERR_GROUP_MEMBER_ADD.NERR_Success)<br />
{<br />
MessageBox.Show("Error Adding Member to Group",<br />
"Error",<br />
MessageBoxButtons.OK,<br />
MessageBoxIcon.Error);<br />
return false;<br />
}<br />
return true;<br />
}<br />
kind regards,
g00fy
|
|
|
|
|
I've run out of ideas. I looked up 1387 and the description says ERROR_NO_SUCH_MEMBER (One or more of the members specified do not exist. Therefore, no new members were added.). You sure your parameters are logically correct?
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
i am sure that my input is correct.
where did you look this constant up at ?
i googled for it and got nothing
kind regards,
g00fy
|
|
|
|
|
ok i found this list on msdn
but it doesnt have the 1380 err code, do you have a link to that resource please ?
i got it going to by the way, thank you for your help.
this is what i ended up with, im sure i had this at some point, maybe i was lacking sleep or something
<br />
public bool NetLocalGroupAddMember(string groupname, string domain, string username)<br />
{ <br />
LOCALGROUP_MEMBERS_INFO_3 member = new LOCALGROUP_MEMBERS_INFO_3();<br />
member.domainandname = domain + @"\" + username;<br />
<br />
int retVal = NetLocalGroupAddMembers(SERVER_NAME, LocalUserManager.DEFAULT_GROUPNAME, 3, ref member, 1);<br />
<br />
if (retVal != (int)NERR_GROUP_MEMBER_ADD.NERR_Success)<br />
{<br />
MessageBox.Show("Error Adding Member to Group: " + retVal,<br />
"Error",<br />
MessageBoxButtons.OK,<br />
MessageBoxIcon.Error);<br />
return false;<br />
}<br />
return true;<br />
}<br />
kind regards,
g00fy
|
|
|
|
|
I pasted the constant and hit "Go to Definition" in Visual Studio It's in winerror.h, in case you want to look it up.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Got to this link and register free for
training your self for VS2005
https://www.microsoftelearning.com/visualstudio2005/
or
http://www.financialexpress.com/latest_full_story.php?content_id=107645
Microsoft dont give anything free except training
Vikas Amin
Embin Technology
Bombay
vikas.amin@embin.com
|
|
|
|
|
Funny, but I can't get ANY of these FREE courses. Every time error is returned:
"We’re sorry, but we were unable to service your request". Something tells me that it will happen until Nuvember 17'th when the free period will be over.
|
|
|
|
|
Got to this link and register free for
training your self for VS2005
https://www.microsoftelearning.com/visualstudio2005/
or
http://www.financialexpress.com/latest_full_story.php?content_id=107645
Microsoft dont give anything free except training
Vikas Amin
Embin Technology
Bombay
vikas.amin@embin.com
|
|
|
|
|
I've written classes for cards, hands, and decks. The hand constructor takes an array of cards as it's paremeter, like so:
public Hand(Card[] Cards)
{
... perform actions
}
But here's the thing. When I create a new hand, I'm current doing this:
Card[] cards = { deck.TopCard, deck.TopCard, deck.TopCard };
Hand hand1 = new Hand(cards);
Rather, I should be doing something like the following, only I can't figure out the correct syntax:
Hand hand1 = new Hand( { deck.TopCard, deck.TopCard, deck.TopCard } );
... Obviously, that throws an error, but I'm pretty sure you see what I want to do. I want to implicitly create the card array in the constructor paremeter. Is this possible?
|
|
|
|
|
you need to do new Card[] {... }
or use the params attribute. Look on MSDN for this info.
xacc-ide 0.0.99-preview7 now with C#, C, C++, IL, XML, Nemerle, IronPython, Perl, Caml, SML, Ruby, Flex, Yacc, Java, Javascript, Lua, Prolog and Boo highlighting support!
|
|
|
|
|
Hand hand1 = new Hand(new Card[] { deck.TopCard, deck.TopCard, deck.TopCard });
|
|
|
|
|
i have a xml looks like this:
(?xml version="1.0" encoding="utf-8" ?)
(EventLog)
(Log Date="11/1/2005")
(Event) 10:37:42 AM : System is Successfully Loaded
(Event) 10:45:04 AM : System is Successfully Loaded
(/Log)
(Log Date="11/2/2005")
(Event) 8:39:32 PM : System is Successfully Loaded
(Event) 8:40:18 PM : System is Successfully Loaded
(/Log)
(/EventLog)
and i have a method which displays those xml data into the datagrid:
XmlDocument docXML = new XmlDocument();
docXML.Load("EventLog.xml");
DataSet dsEvent = new DataSet("Log");
dsEvent.ReadXml("../Debug/EventLog.xml");
dataGrid1.DataSource = dsEvent;
dataGrid1.DataMember = "Log";
dataGrid1.CaptionText = "NetWatcher Event Log";
It displays all the members for "Log" elements.. My problem is.. how to display the members of "Log" for particular date only?( particular "Log"'s attribute)
I've tried something like dataGrid1.DataMember = "Log Date="+@""11/2/05"" and it gives error like datamember Log Date = "11/2/05" was not found.
-- modified at 20:48 Friday 4th November, 2005
|
|
|
|
|
You can filter and sort using a DataView object. Pull the table you want to display out of the DataSet, then create a DataView for it. Set your filter, and then use the DataVeiw object as your .DataSource, rather than the DataSet itself.
|
|
|
|
|
I've tried this but it's still not executable.
DataSet dsEvent = new DataSet("Log");
dsEvent.ReadXml("../Debug/EventLog.xml");
DataView dv = new DataView(dsEvent.Tables["Log"] ,DateToday,"",DataViewRowState.CurrentRows);
dataGrid1.DataSource = dv;
dataGrid1.DataMember = "Log";
dataGrid1.CaptionText = "NetWatcher Event Log";
Note:variable DateToday is the attribute that i want to filter. I provide the node name and attribute and I want to get their childnode
-- modified at 9:45 Saturday 5th November, 2005
|
|
|
|
|
Alright. Let me break it down, to make sure I understand everything. First thing, DateToday is a string variable that you populate elsewhere, correct? I am assuming that your allowing the user to change the date through the UI somewhere?
There are two things that I'm wondering about. First is, are you sure the table in the DataSet that you want to display is called "Log"? Second, are you calling .DataBind() on the DataGrid? If the code was broken down a bit into more granular pieces, say something like this:
<br />
DataSet dsEvent = new DataSet("Log");<br />
dsEvent.ReadXml("../Debug/EventLog.xml");<br />
<br />
DataView dv = new DataView(dsEvent.Tables["Log"]);<br />
dv.RowFilter = "TheDate='11/1/2005'";
dv.RowStateFilter = DataViewRowState.CurrentRows;<br />
<br />
<br />
dataGrid1.CaptionText = "NetWatcher Event Log";<br />
<br />
dataGrid1.DataSource = dv;<br />
dataGrid1.DataBind();
Does any of that help? Make sure you know what the table in your DataSet is called. The DataSet is called "Log", but is the table really called "Log", or is it something else? And at the end of it all, make sure you call .DataBind() on your datagrid.
|
|
|
|
|
First, thanks for you reply. You totally undertood my problem and thanks for all the explanation given. DateToday is a string variable which looks like 11/1/2005. And yes, i have a table named "Log".
Here comes another problem, when i try to run this code, i've got an error like -'System.Windows.Forms.DataGrid' does not contain a definition for 'DataBind' and if i take out the line dataGrid1.DataBind(); then it can be executed but no record is displayed. Why is this happened?
|
|
|
|
|