Solved

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

Posted on 2014-04-02
17
2,931 Views
Last Modified: 2014-04-08
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
Comment
Question by:ICantSee
  • 9
  • 7
17 Comments
 

Author Comment

by:ICantSee
Comment Utility
error
0
 

Author Comment

by:ICantSee
Comment Utility
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
 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
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
 
LVL 40

Expert Comment

by:Jacques Bourgeois (James Burger)
Comment Utility
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
 
LVL 15

Accepted Solution

by:
ChloesDad earned 500 total points
Comment Utility
@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
 

Author Comment

by:ICantSee
Comment Utility
@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
 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
Did you try changing the format of your email addresses as I posted?
0
 

Author Comment

by:ICantSee
Comment Utility
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
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:ICantSee
Comment Utility
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
 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
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
 

Author Comment

by:ICantSee
Comment Utility
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
 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
What version of VB are you using and what version of the framework
0
 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
And did you change the "from" address to be in that format as well as the "to"
0
 

Author Comment

by:ICantSee
Comment Utility
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
 
LVL 15

Assisted Solution

by:ChloesDad
ChloesDad earned 500 total points
Comment Utility
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
 

Assisted Solution

by:ICantSee
ICantSee earned 0 total points
Comment Utility
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
 

Author Closing Comment

by:ICantSee
Comment Utility
It was the final answer. No one really steered me to the web.config file.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
This video discusses moving either the default database or any database to a new volume.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now