Link to home
Start Free TrialLog in
Avatar of jacobymatt
jacobymatt

asked on

Emailing through asp.net

I've written a program that sends a confirmation email after the user submits.  The code points to the email server we have and the emails were sending fine when I was testing the program on my localhost.  Now I have moved the application to the web server and it will not send an email.  I've tried sending it to several addresses to make sure, but it fails to email every time.  Here is my code:
        Dim eMail As New MailMessage
        eMail.Body = strMessage
        eMail.From = "noreply@adtrav.com"
        eMail.Subject = "Approval Needed"
        eMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1")
        eMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "matt@adtrav.com")
        eMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "somepassword")
        eMail.BodyFormat = MailFormat.Html
        SmtpMail.SmtpServer = "mail.adtrav.com"
        eMail.To = "matt.jacoby@adtrav.com"      
        SmtpMail.Send(eMail)
       
        I am not familiar with the fields.add part, but I have been told that this can be given the email address and password of a valid account and it should work.  I have also tried it without those three lines and it still doesn't work.  Help!  I am giving away all the points I have left and this is very urgent!
       
Avatar of muellerfan
muellerfan

Are you getting an error message?  Are you sure the production server has access to the SMTP server?
ASKER CERTIFIED SOLUTION
Avatar of viola123
viola123

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of jacobymatt

ASKER

Thanks for the help guys.  This is the error I was able to see when I ran the application from the web server.  I just got in this morning so I will check those settings but I just wanted to go ahead and post this in case it was obvious what the problem was.  

[COMException (0x80040213): The transport failed to connect to the server.
]

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) +0
   System.RuntimeType.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters) +473
   System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args) +58

[HttpException (0x80004005): Could not access 'CDO.Message' object.]
   System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args) +113
   System.Web.Mail.CdoSysHelper.Send(MailMessage message) +1861
   System.Web.Mail.SmtpMail.Send(MailMessage message) +150
   ERC_RezApprove.form.sendEmail(String strMessage, String strApprovee, String strTA, String strApprover) in c:\inetpub\wwwroot\ERC_RezApprove\AuthForm.aspx.vb:695
   ERC_RezApprove.form.btnRequestApp_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\ERC_RezApprove\AuthForm.aspx.vb:739
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1292

Well, thanks anyway but I figured out that I needed to inlcude my mail server in my host file because it was trying to locate it by its external ip address instead of going through our network to reach it.  But I don't really understand why it would not be able to find it by the external ip address.  If anyone has a clue it would be nice to know why the external path would be a problem.