By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
431,805 Members | 1,202 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 431,805 IT Pros & Developers. It's quick & easy.

how to send mail via AUTHENTICATED smtp account?

P: n/a
RN
I am tired of sending mail from the built-in SMTP service for so many
reasons (errors are nondescriptive in the event log, it doesn't let me
control which IP address it sends from, and it identifies itself as the
computer name which is not in domain.com format, triggering spam filter
problems).

Instead, I want to have my code send through an SMTP server of a company
that we pay for mail service. But they require a username and password.
How do I use something other than "localhost" for the Smtp Server and how do
I pass the username and password?
Nov 19 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
I recently hunted high and low for the same purpose. Here is what I found.
It is apparently undocumented, but has been working for me very well. The
whole trick is in the mail.Fields.Add lines:

System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.To = eMailRecipients; //"Jo*****@Yahoo.com;Ja*****@Yahoo.com";
mail.From = "Me@MyDomain.com";
mail.Subject = "Hello World!";
mail.Body = messageToGo;
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",
"1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",
"MyFullUserNameHere"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",
"MyPasswordHere"); //set your password here

System.Web.Mail.SmtpMail.SmtpServer = "Mail.YourDomain.com"; //your smtp
server goes here
System.Web.Mail.SmtpMail.Send( mail );

If someone else has a better way I'd like to know.

-Smithers

"RN" <re*************@please.com> wrote in message
news:Ju******************@twister.socal.rr.com...
I am tired of sending mail from the built-in SMTP service for so many
reasons (errors are nondescriptive in the event log, it doesn't let me
control which IP address it sends from, and it identifies itself as the
computer name which is not in domain.com format, triggering spam filter
problems).

Instead, I want to have my code send through an SMTP server of a company
that we pay for mail service. But they require a username and password.
How do I use something other than "localhost" for the Smtp Server and how
do
I pass the username and password?

Nov 19 '05 #2

P: n/a
RN
Thanks, I'm excited to try it.

Maybe you also know the answer to this very related question... Sometimes I
send from aliases that are mapped on the POP3 server if someone did reply.
For example, suppose I have a real account called sa***@domain.com, and
that's a real account that has a username and password that I can use in
your example. But often I will send mail from something else like
or************@domain.com . There's no account for this, but I have an
alias on the pop server that will map any incoming mail to order-receipts
over to the real sales account. Obviously I still need to send from
order-receipts, though. Using the SMTP server with IIS, this works fine.
Now that I'm going to send through a 3rd party mail server, I'm wondering
what will happen. Can I put anything I want in the mail.From field as long
as it is at the same domain?

Have you found out anything else, good or bad, about using this technique
compared to the regular IIS SMTP service?

Again, thanks very much. Yours was a perfect newsgroup reply!
"Smithers" <Ja*********@OnceOver.com> wrote in message
news:eD**************@tk2msftngp13.phx.gbl...
I recently hunted high and low for the same purpose. Here is what I found.
It is apparently undocumented, but has been working for me very well. The
whole trick is in the mail.Fields.Add lines:

System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.To = eMailRecipients; //"Jo*****@Yahoo.com;Ja*****@Yahoo.com";
mail.From = "Me@MyDomain.com";
mail.Subject = "Hello World!";
mail.Body = messageToGo;
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenti
cate", "1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername
", "MyFullUserNameHere"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword
", "MyPasswordHere"); //set your password here

System.Web.Mail.SmtpMail.SmtpServer = "Mail.YourDomain.com"; //your smtp
server goes here
System.Web.Mail.SmtpMail.Send( mail );

If someone else has a better way I'd like to know.

-Smithers

"RN" <re*************@please.com> wrote in message
news:Ju******************@twister.socal.rr.com...
I am tired of sending mail from the built-in SMTP service for so many
reasons (errors are nondescriptive in the event log, it doesn't let me
control which IP address it sends from, and it identifies itself as the
computer name which is not in domain.com format, triggering spam filter
problems).

Instead, I want to have my code send through an SMTP server of a company
that we pay for mail service. But they require a username and password.
How do I use something other than "localhost" for the Smtp Server and how do
I pass the username and password?


Nov 19 '05 #3

P: n/a
<<Yours was a perfect newsgroup reply>>
Is that like a "great golf shot?" (what other type of shot is there on a
golf course?)

<<Can I put anything I want in the mail.From field as long as it is at the
same domain?>>
AFAIK you can put anything you want in the mail.From field... doesn't even
have to be in the same domain. You could put "snoop@dog" in there if you
wanted to.

<<Now that I'm going to send through a 3rd party mail server, I'm wondering
what will happen>>
Your mail will go through as expected... as long as you use credentials that
are valid on the 3rd party mail server.

<<Have you found out anything else, good or bad>>
Nope - it works and that's as far as I got. I have work to do so I didn't
sit down and simultaneously try multiple approaches for the fun of it.

I'd like to hear from any others if they have any better way to do the same
thing *without* using CDO or some other mail component. It does

Those were great newsgroup questions!

HTH!
"RN" <re*************@please.com> wrote in message
news:j3*******************@twister.socal.rr.com...
Thanks, I'm excited to try it.

Maybe you also know the answer to this very related question... Sometimes
I
send from aliases that are mapped on the POP3 server if someone did reply.
For example, suppose I have a real account called sa***@domain.com, and
that's a real account that has a username and password that I can use in
your example. But often I will send mail from something else like
or************@domain.com . There's no account for this, but I have an
alias on the pop server that will map any incoming mail to order-receipts
over to the real sales account. Obviously I still need to send from
order-receipts, though. Using the SMTP server with IIS, this works fine.
Now that I'm going to send through a 3rd party mail server, I'm wondering
what will happen. Can I put anything I want in the mail.From field as
long
as it is at the same domain?

Have you found out anything else, good or bad, about using this technique
compared to the regular IIS SMTP service?

Again, thanks very much. Yours was a perfect newsgroup reply!
"Smithers" <Ja*********@OnceOver.com> wrote in message
news:eD**************@tk2msftngp13.phx.gbl...
I recently hunted high and low for the same purpose. Here is what I
found.
It is apparently undocumented, but has been working for me very well. The
whole trick is in the mail.Fields.Add lines:

System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.To = eMailRecipients; //"Jo*****@Yahoo.com;Ja*****@Yahoo.com";
mail.From = "Me@MyDomain.com";
mail.Subject = "Hello World!";
mail.Body = messageToGo;

mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenti
cate",
"1"); //basic authentication

mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername
",
"MyFullUserNameHere"); //set your username here

mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword
",
"MyPasswordHere"); //set your password here

System.Web.Mail.SmtpMail.SmtpServer = "Mail.YourDomain.com"; //your smtp
server goes here
System.Web.Mail.SmtpMail.Send( mail );

If someone else has a better way I'd like to know.

-Smithers

"RN" <re*************@please.com> wrote in message
news:Ju******************@twister.socal.rr.com...
>I am tired of sending mail from the built-in SMTP service for so many
> reasons (errors are nondescriptive in the event log, it doesn't let me
> control which IP address it sends from, and it identifies itself as the
> computer name which is not in domain.com format, triggering spam filter
> problems).
>
> Instead, I want to have my code send through an SMTP server of a
> company
> that we pay for mail service. But they require a username and
> password.
> How do I use something other than "localhost" for the Smtp Server and how > do
> I pass the username and password?
>
>



Nov 19 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.