• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3494
  • Last Modified:

The specified string is not in the form required for an e-mail address system.net.mail

I am trying to email the results of a form to myself, for now. I keep getting "The specified string is not in the form required for an e-mail address"

The address is hard coded in and is correct:

     
  Dim myMessage As MailMessage = New MailMessage()
        myMessage.Subject = "New Benefit Time Request"
        myMessage.Body = mailBody

        myMessage.From = New MailAddress("kba_forms@keystoneblind.org")
        myMessage.IsBodyHtml = True
        myMessage.To.Add(New MailAddress("kevin@keystoneblind.org"))

Open in new window


When I view the mailbody it has all of the information that I want in it.

the odd thing is I copied and pasted this code from another project that I have done. It works fine.

Any help will be appreciated
0
ICantSee
Asked:
ICantSee
  • 9
  • 7
3 Solutions
 
ICantSeeAuthor Commented:
error
0
 
ICantSeeAuthor Commented:
System.FormatException was unhandled by user code
  HResult=-2146233033
  Message=The specified string is not in the form required for an e-mail address.
  Source=System
  StackTrace:
       at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32& index)
       at System.Net.Mail.MailAddressParser.ParseAddress(String data)
       at System.Net.Mail.MailAddress..ctor(String address, String displayName, Encoding displayNameEncoding)
       at System.Net.Mail.MailMessage..ctor()
       at BenefitTime_KevinBly_Default.SubmitFormButton_Click(Object sender, EventArgs e) in \\data\kba\UserFiles\kevin\My Documents\Projects\websites\2014\Service Forms\BenefitTime\kevinbly\Default.aspx.vb:line 76
       at System.EventHandler.Invoke(Object sender, EventArgs e)
       at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: 

Open in new window

0
 
ChloesDadCommented:
If you create a mailaddress with just one parameter it should be in the form

"Tom Smith <tsmith@hotmail.com>"

if the format is not recognised then a format exception will be thrown

Exception - Condition

ArgumentNullException    - address is null.
 
ArgumentException   - address is String.Empty ("").
 
FormatException - address is not in a recognized format.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
Jacques Bourgeois (James Burger)Commented:
The code you show us is not the code that triggers the exception, so we do not see the whole thing.

Your third post shows that the problem in on line 76. A lot can happen between the code in your first post and line 76.

Looking at your second post, there is something about a DateTime (Date) object, which is strange for an error in a mail address parsing routine. Is it possible that your MailAddress is modified somewhere with something that has a date in it?
0
 
ChloesDadCommented:
@James

The datetime in the troubleshooting tips is an example of what can cause a format exception, not what actually did cause the format exception. The second line in the troubleshooting tips is the key one in this instance. Also the code posted could be line 76 in the actual subroutine. The stack trace is the key in this case and shows the error in the constructor of the mailaddress class.
0
 
ICantSeeAuthor Commented:
@james. I have no clue what you are trying to tell me. I have sifted through the items you mentioned before I posted this question and have not  been able to resolve my issue. Sorry.
0
 
ChloesDadCommented:
Did you try changing the format of your email addresses as I posted?
0
 
ICantSeeAuthor Commented:
my email address is hand coded in. kevin@keystoneblind.org

no misspelling, even retyped it a few times.

this same code was copied and pasted from another app that I have running right now. No issues with it.
0
 
ICantSeeAuthor Commented:
I' sorry. I didn't realize you were the same person.

I don't understand what line 76 in the actual sub routine means?
0
 
ChloesDadCommented:
I'm not, there are two experts commenting on this.

It should be "kevin <kevin@keystoneblind.org>" rather than "kevin@keystoneblind.org"

The mail message doesn't understand the format of the string that you are providing
0
 
ICantSeeAuthor Commented:
myMessage.To.Add(New MailAddress("kevin <kevin@keystoneblind.org>"))

Open in new window


Throws the same error.

I am using VB and system.net.mail

As I said, the copy and pasted the exact code from another app that I built, and it runs flawlessly. I really don't get it.
0
 
ChloesDadCommented:
What version of VB are you using and what version of the framework
0
 
ChloesDadCommented:
And did you change the "from" address to be in that format as well as the "to"
0
 
ICantSeeAuthor Commented:
Its the version of VB that comes with Microsoft Visual Studio 2012

.net version is 4.5

Same error when I change both email addresses to the suggested formaterror
0
 
ChloesDadCommented:
That makes it a lot clearer, the error is in the declaration of the mailmessage, not when adding the mailaddress, hence why changing the mailaddress didn't work.

MailMessage should work without any parameters

try this

Dim myMessage As MailMessage = New MailMessage("kba_forms@keystoneblind.org","kevin@keystoneblind.org")
        myMessage.Subject = "New Benefit Time Request"
        myMessage.Body = mailBody

'        myMessage.From = New MailAddress("kba_forms@keystoneblind.org")
        myMessage.IsBodyHtml = True
'        myMessage.To.Add(New MailAddress("kevin@keystoneblind.org"))
 

Open in new window

0
 
ICantSeeAuthor Commented:
The answer ended up being that the app was looking in the web.config file instead of vb file for the "From" email address. Once corrected, it functioned as expected.
0
 
ICantSeeAuthor Commented:
It was the final answer. No one really steered me to the web.config file.
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

  • 9
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now