Search Results

Search found 11256 results on 451 pages for 'email verification'.

Page 59/451 | < Previous Page | 55 56 57 58 59 60 61 62 63 64 65 66  | Next Page >

  • Can I disable email alarms in iCal?

    - by Brock Boland
    I have iCal syncing with a Google Calendar account, and for some reason, some meeting invites that I accept wind up with an email alarm set for 10 minutes before the meeting. This causes iCal to send me an email through Mail.app at the appointed time. This is a pain in the neck, because Mail.app launches if it's not open (and since I use a different client, it never is), and if I'm offline, Mail.app starts throwing up error messages. And besides, I don't want meeting alarms in my inbox. Is there any way to completely disable email alarms in iCal? The only option I see is "Turn off all alarms" - but I don't want to turn off the pop-up windows, just the emails. I remove those alarms any time I come across them, but sometimes they slip through.

    Read the article

  • "Recipient address rejected" when sending an email to an external address with sendgrid

    - by WJB
    In postfix, I'm using relay_host to send an email to an external address using sendgrid, but I get an error about local ricipient table when sending an email from my PHP code. This is my main.cf in /postfix/ ## -- Sendgrid smtp_sasl_auth_enable = yes smtp_sasl_password_maps = static:username:password smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000 relayhost = [smtp.sendgrid.net]:587 This is the error message from the log: postfix/smtpd[53598]: [ID 197553 mail.info] NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<localhost.localdomain> One interesting thing is when I use "sendmail [email protected]" from the command line, the email is delivered successfully using SendGrid. I think it's because this uses postfix/smtp instead of postfix/smtpD the log for this says, postfix/smtp[18670]: [ID 197553 mail.info] AAF7313A7E: to=, relay=smtp.sendgrid.net[50.97.69.148]:587, delay=4.1, delays=3.5/0.02/0.44/0.18, dsn=2.0.0, status=sent (250 Delivery in progress) Thank you

    Read the article

  • Transferring domains when registered owner's email address is incorrect

    - by www.jacob-
    Years ago I registered some domains using a now expired university email address. The other contact details for the registered owner (postal address and phone number) are still correct. In order to change/update the email address, the registrar wants to charge £20 a domain. I would like to transfer the domains away from the current registrar. I can unlock the domains and generate an auth code. However, I cannot authorise the transfer by email as any emails sent to the registered owner's address will bounce. This seems to rule out most registrars I have tried. Are there any ways to transfer these domains without paying the £20 fee to update the registered owner's details?

    Read the article

  • Google SMTP settings not sending email

    - by Baboon
    I am having a hard time making the email sending in GitLab to work (changing email in profile settings). My server has exim4, I can tell its working because if I do simple mail() in PHP, it thus sends the email to the recipient. Now, in GitLab seems that it wasn't. So I modified productions.rb to have SMTP settings, and use Google SMTP: config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address: "smtp.gmail.com", port: 465, user_name: "[email protected]", password: "hashpassword", domain: "gmail.com", authentication: :plain, enable_starttls_auto: true } I even tried changing the port to 587 and 467 but still it doesn't work. Why is that? Can you please lead me to where I am missing?

    Read the article

  • DKIM for email through Google Apps domain with external outbound relay

    - by David Gardiner
    I'd like to enable the new Domain Keys DKIM email authentication feature for a domain hosted in Google Apps. Some of my users use an external SMTP gateway (such that when they send email, it doesn't go through smtp.gmail.com). I have an SPF record configured for the domain, and this allows the external SMTP gateways as valid SMTP hosts. (I realise SPF is different to DKIM) Will enabling DKIM adversely affect the external gateway email? eg. Are the externally sent emails at risk of being marked as spam because they would not have the DKIM signature, or will DKIM only positively benefit emails sent through Google's SMTP server?

    Read the article

  • mailman not relaying email to external address

    - by gozzilli
    I have a setup of mailman with postfix on an ubuntu server 12.04. My problem is that mailing list emails are not forwarded to email addresses external to my institution. However the initial welcome email is received by everyone, internally and externally. in fact, a simple email from command line with mail is successfully sent to anyone after that, mailing list emails are only forwarded to internal addresses. the domain name I'm using for the server is not that of my institution who is hosting the server. Here is my main.cf: myorigin = sub.myinstitution.tld mynetworks = 127.0.0.0/8 xxx.xxx.xxx.xxx/16 # this is my institution ip range relayhost = smtp.myinstitution.tld inet_interfaces = loopback-only local_transport = error:local delivery is disabled virtual_alias_maps = hash:/etc/postfix/virtual smtpd_recipient_restrictions = permit_mynetworks myhostname = mywebsite.tld mydestination = $myhostname, localhost.$mydomain, localhost I also found these two links on serverfault and ubuntu forums, but neither of these solutions seem to do the trick for me. Any help would be much appreciated.

    Read the article

  • hMailServer Email + MX Records Configuration

    - by asn187
    Trying to make DNS changes to enable email to be sent using hMailServer. My mail server is on a separate machine with a separate IP Address. I have already added MyDomain.com and an email account I have create a MX Record with the mail server being mail.domain.com an a priority on 20. 1) But the question is how do I now link this MX record for the domain to my mail server/ mail server IP Address? 2) What changes are needed in hMailServer to complete the process and be able to send emails for the domain? 3) In Settings SMTP Delivery of email: What should my configuration here look like?

    Read the article

  • Update Billing Email Addresses in Sage MAS90

    - by ThaKidd
    I have been tasked with trying to find a method of updating about 500 customer email addresses in MAS90. I recently discovered that they had the ability to email invoices to their customers and because I opened my big mouth, they now want me to find a way to add about 500 emails into the system so they do not have to perform the task manually. The office does have an SQL server which supports ASP sites which contains a list of all of the current email addresses. My plan was to use Microsoft Access 2007 with the MAS90 ODBC connector to attempt this update. My questions are: Is this the right way to go or is there a better method of obtaining these results? Does anyone happen to know which tables I should be looking at? Any and all help is appreciated. Thanks in advance!

    Read the article

  • PHP script unable to email on OpenBSD Apache

    - by MattC
    I have a webserver running OpenBSD 4.7 and PHP 5.2.12 out of the ports tree. There is a small contact page that is supposed to send an email to a specific address. When I fill in the form using a web browser, it sends the AJAX request to the PHP page which claims it worked successfully but there is no email. The maillog is empty as well. I created a small php script that replicates this functionality and when I run it by hand using the "php -f" command, it sends an email without a problem. I think this has to do with being chrooted but I can't seem to get it to work. Furthermore, I can't seem to get PHP to log. I told it to log to /var/www/logs/php_errors.log and restarted but can't get it to send anything to the file. Does anyone have any tips for debugging these sort of things in OpenBSD?

    Read the article

  • sendmail new mail notification to external address only with the first unread email

    - by elcodedocle
    I'm running a webserver with a contact form which triggers a php script to sendmail the message to a local account on the server, and I want to be notified on my regular email account when I got new messages. I could have a notification per email or just send the emails directly to my account but that'd be too much: I just want a "you have new mail" notification sent to my email every time the inbox turns from 0 unread messages to 1. Google is burying me in sendmail documentation, and still can't find anything about it. Any ideas?

    Read the article

  • Getting "is not a valid mailbox" when email sent to primary address

    - by Juan Tarquino
    Anyone outside my domain who sends me an email is getting a bounced email with the following error from Exchange: 550 550 5.1.1 [email protected] is not a valid mailbox (state 14). I can't receive emails from external addresses until I send an email to one of my secondary addresses. Once I sent it to my secondary address, my primary address will start working for a while and fail again after a few hours. We use Exchange 2003. Anyone has any suggestions on what to try?

    Read the article

  • If email not received then do X (outlook 2013 on Exchange 2010)

    - by Brad
    I receive notification emails daily and would like to automate an easier way to manage all of those notifications. For example: Notification 1 from [email protected] is received daily between 10pm-1am Notification 2 from [email protected] is received daily between 12am-3am Notification 3 from [email protected] is received daily between 1am-4am I am looking for a way to page myself at [email protected] on my cellphone if any of these messages are not received within the defined time frame of when the email should have arrived. I would like to basically email a page like: ATTENTION Notification 2 not received within the allowed range. This way I would be notified instead of having to check the email manually and see that I only received 2 of the three alerts. Is there a way to do this in Outlook? Our exchange server is a hosted exchange server on GoDaddy if that info is needed.

    Read the article

  • Exchange 2010 Prevent Authenticated Users From Sending Email From Any Address

    - by Chance
    I have recently been combating an SMTP AUTH attack in which one of my email accounts had been compromised and was being used to solicit spam. I have been able to identify the account and change the password however I would like to further restrict my exchange server. By default exchange 2010 allows for any authenticated user to specify any email address as the MAIL FROM address and it will accept it. Is there any way to restrict this so that only the authenticated account's email address will be able to be used as the MAIL FROM address? I have been looking through all ADPermissions for the SMTP connector however I can't find any documentation on how to accomplish this. Any suggestions would be greatly appreciated. Telnet Test Picture Telnet Test SMTP Connector Properties Pictures Permissions Tab

    Read the article

  • My email server emails are being refused by some servers

    - by Havenard
    I have a Microsoft Exchange Server 2003 installed in my office. It was configured with all MX-records and SMTP relaying recomendations required to gain trust and not have my server blacklisted. It is also aparently not blacklisted in any email server blacklist I can find online, and in overall it works. I can send emails to Gmail, Hotmail, and most other email servers. Howover, some few email servers insist in not receiving my e-mails for some random reason I couldn't so far understand. There is no error, they simply drop it. Is there something I can do to get this mystery solved?

    Read the article

  • Handling Incoming Mail to Multiple Recipients in PHP

    - by Navarr
    Alright, this may take a moment or two to explain: I'm working on creating an Email<SMS Bridge (like Teleflip). I have a few set parameters to work in: Dreamhost Webhosting PHP 5 (without PEAR) Postfix What I have right now, is a catch-all email address that forwards the email sent to a shell account. The shell account in turn forwards it to my PHP script. The PHP script reads it, strips a few Email Headers in an effort to make sure it sends properly, then forwards it to the number specified as the recipient. [email protected] of course sends an SMS to +1 (555) 123-4567. This works really well, as I am parsing the To field and grabbing just the email address it is sending to. However, what I realized that I did not account for is multiple recipients. For example, an email sent to both 5551234567 and 1235554567 (using the To line, the CC line, or any combination of those). The way email works of course, is I get two emails received, end up parsing each of them separately, and 5551234567 ends up getting the same message twice. What is the best way to handle this situation, so that each number specified in TO and CC can get one copy of the message. In addition, though I doubt its possible: Is there a way to handle BCC the same way?

    Read the article

  • Can't override "From" address in MailMessage class using .config login credentials

    - by Jeff
    I'm updating some existing code that sends a simple email using .Net's SMTP classes. Sample code is below. The SMTP host is google and login info is contained in the App.config as shown below (obviously not real login info :)). The problem I'm having, and I haven't been able to find any answers Googling, is that I can NOT override the display of the "from" email address that's contained in the "username" attribute off the Network element in the config in the delivered email. In the line below that explicitly sets the From property off the myMailMessage object, that value, "[email protected]" does NOT display when the email is received. It still shows as "[email protected]" from the Network tag. However, the From name "Sparky" does appear in the email. I've tried adding a custom "From" header to the Header property of the myMailMessage but that didn't work either. Is there anyway to login to the smtp server, as shown below using the Network tag credentials, but in the actual email received override the From email address that's displayed? Sample code: MailMessage myMailMessage = new MailMessage(); myMailMessage.Subject = "My New Mail"; myMailMessage.Body = "This is my test mail to check"; myMailMessage.From = new MailAddress("[email protected]", "Sparky"); myMailMessage.To.Add(new MailAddress("[email protected]", "receiver name")); SmtpClient mySmtpClient = new SmtpClient(); mySmtpClient.Send(myMailMessage); in App.config: <system.net> <mailSettings> <smtp deliveryMethod="Network" from="[email protected]"> <network host="smtp.gmail.com" port="587" userName="[email protected]" password="mypassword" defaultCredentials="false"/> </smtp> </mailSettings> </system.net>

    Read the article

  • Basic Contact Form in PHP

    - by NessDan
    I'm working on a contact form for my church website. The church has an email already registered (it's POP3) and the hosting company says their mail server is mymail.brinkster.com . With all that information, how can you send the form using mail()? The server won't show PHP errors. The current code looks like this: $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: *ChurchsEmail*' . "\r\n"; if(mail("*MyEmailHere*", "Setting Up PHP Email", "This would be the body of the email.", $headers)) { echo "The email was successfully sent."; } else { echo "The email was NOT sent."; } All I get back is "The email was NOT sent." So does anyone have any experience setting up an email form like this? My thanks to anyone who can help me out and any efficient ways of doing this, let me know!

    Read the article

  • Send Email via Google Apps in C#

    - by NateReid
    Hello, I am trying to send a basic email through Google Apps/Gmail using C# (System.Net.Mail/Framework 4) and I am having trouble doing so. I am receiving the following exception: "The operation has timed out." My code is below: //Create the mail message MailMessage mail = new MailMessage(); //Set the addresses mail.From = new MailAddress("[email protected]", "My Name"); mail.To.Add(Email); //Set the subject and bodycontent mail.Subject = "Email Testing"; mail.Body = "This is the body of the email"; //Send the message using the SmtpClient SmtpClient smtp = new SmtpClient(); smtp.EnableSsl = true; smtp.Send(mail); My web.config has the following settings: <smtp from="[email protected]" deliveryMethod="Network"> <network host="smtp.gmail.com" password="password" port="587" userName="[email protected]" /> </smtp> During my troubleshooting I have tried: Using my personal gmail address as well as another from a domain hosted through Google Apps. Using ports 25, 465, and 587 Hard coding the config settings in the c# code instead of using the web.config Sending and telneting from multiple network locations to ensure the firewall/ISP was not blocking it Ensured that POP was enabled in the GMail settings (according to Google this should turn on the ability to send using SMTP) Changing the send from and replyTo address to ensure they match the account (apparently a GMail necessity). I am able to send and receive email fine through the GMail interface for both of my email accounts. I have also tried the settings and solutions offered in Question # 757987 to no avail. Any suggestions would be greatly appreciated. Thanks all.

    Read the article

  • Correct method to search for AD user by email address from .NET

    - by BrianLy
    I'm having some issues with code that is intended to find a user in Active Directory by searching on their email address. I have tried 2 methods but I'm sometimes finding that the FindOne() method will not return any results on some occasions. If I look up the user in the GAL in Outlook I see the SMTP email address listed. My end goal is to confirm that the user exists in AD. I only have the email address as search criteria, so no way to use first or last name. Method 1: Using mail property: DirectorySearcher search = new DirectorySearcher(entry); search.Filter = "(mail=" + email + ")"; search.PropertiesToLoad.Add("mail"); SearchResult result = search.FindOne(); Method 2: proxyAddresses property: DirectorySearcher search = new DirectorySearcher(entry); search.Filter = "(proxyAddresses=SMTP:" + email + ")"; // I've also tried with =smtp: search.PropertiesToLoad.Add("mail"); SearchResult result = search.FindOne(); I've tried changing the case of the email address input but it still does not return a result. Is there a problem here with case sensitivity? If so, what is the best way to resolve it?

    Read the article

  • Email as a view.

    - by Hal
    I've been in some discussion recently about where email (notifications, etc...) should be sent in an ASP.NET MVC application. My nemesis grin argues that it only makes sense that the email should be sent from the controller. I argue that an email is simply an alternate or augmented view through a different channel. Much like I would download a file as the payload of an ActionResult, the email is simply delivered through a different protocol. I've worked an extension method that allows me to do the following: <% Html.RenderEmail(model.FromAddress, model.ToAddress, model.Subject); %> which I actually include within my the view that is displayed on the screen. The beauty is that, based on convention, if I call RenderEmail from a parent view named MyView.ascx, I attempt to render the contents of a view named MyViewEmail.ascx, unless it is not found, in which case I simply email a copy of parent view. It certainly does make it testable (I still have an ISMTPService injected for testing), I wondered if anyone had any thoughts on whether or not this breaks from good practice. In use it has been extremely handy when we needed to easily send an email or modify the contents of the emailed results vs the browser rendered results. Thanks, Hal

    Read the article

  • Sending Email with attachment, sends a blank file.

    - by pankaj
    I am using this code: File myDir = new File(getApplicationContext().getFilesDir().getAbsolutePath()); try { Log.i("CSV Testing ", "CSV file creating"); FileWriter fw = new FileWriter(myDir + "/myfile.csv"); // // write data to file // Log.i("CSV Testing ", "CSV file created and your data has been saved"); // Process for sending email with CSV file File CSVFile = new File(myDir,"myfile.csv"); if(CSVFile.exists()) { Log.i("CSV FILE", "CSV file exists"); } else { Log.i("CSV FILE", "CSV file not exists"); } Log.i("SEND EMAIL TESTING", "Email sending"); Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("text/csv"); emailIntent .putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"myemailid"}); emailIntent .putExtra(android.content.Intent.EXTRA_SUBJECT, "my subject"); emailIntent .putExtra(android.content.Intent.EXTRA_TEXT, "_____________\n Regards \n Pankaj \n ____________ "); emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + CSVFile.getAbsolutePath())); emailIntent.setType("message/rfc822"); // Shows all application that supports SEND activity try { startActivity(Intent.createChooser(emailIntent, "Send mail...")); } catch (android.content.ActivityNotFoundException ex) { showMSG("There are no email clients installed."); } Log.i("SEND EMAIL TESTING", "Email sent"); } catch (FileNotFoundException e) { Log.i("ExportCSV Exception", e.toString()); } catch (IOException e) { Log.i("ExportCSV Exception", e.toString()); } But it sends myfile.csv as a blank file. I checked it from file explorer, where myfile.csv is not blank and contains right data. How can I solve this?

    Read the article

  • Email Collector / Implementation

    - by Tian
    I am implementing a simple RoR webpage that collect emails from visitors and store them as objects. I'm using it as a mini-project to try RoR and BDD. I can think of 3 features for Cucumber: 1. User submits a valid email address 2. User submits an existing email address 3. User submits an invalid email My question is, for scenarios 2 and 3, is it better to handle this via the controller? or as methods in a class? Perhaps something that throws errors if an instance is instantiated in sceanrio 2 or 3? Implementation is below, love to hear some code reviews in addition to answers to questions above. Thanks! MODEL: class Contact < ActiveRecord::Base attr_accessor :email end VIEW: <h1>Welcome To My Experiment</h1> <p>Find me in app/views/welcome/index.html.erb</p> <%= flash[:notice] %> <% form_for @contact, :url => {:action => "index"} do |f| %> <%= f.label :email %><br /> <%= f.text_field :email %> <%= submit_tag 'Submit' %> <% end %> CONTROLLER: class WelcomeController < ApplicationController def index @contact = Contact.new unless params[:contact].nil? @contact = Contact.create!(params[:contact]) flash[:notice] = "Thank you for your interest, please check your mailbox for confirmation" end end end

    Read the article

  • a + sing in email address

    - by d.andreykiv
    Hi. I need to submit an email address with a "+" sign and validate in on server. But server receives email like "[email protected]" as "aaa [email protected]". I send all data as POST request with following code NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", url, @"/signUp"]]; NSString *post = [NSString stringWithFormat:@"&email=%@&userName=%@&password=%@", user.email, user.userName, user.password]; NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO]; NSData* data = [self sendRequest:url postData:postData]; post variable before encoding has value &[email protected]&userName=Asdfasdfadsfadsf&password=sdfasdf after encoding it is same &[email protected]&userName=Asdfasdfadsfadsf&password=sdfasdf Method I use to send request looks like following code: -(id) sendRequest:(NSURL*) url postData:(NSData*)postData { // Create request NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; [request setURL:url]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setHTTPBody:postData]; NSURLResponse *urlResponse; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:nil]; [request release]; return data; }

    Read the article

  • C# ...extract email address from inside 100's of text files

    - by Developer
    My SMTP server got 100's of errors when sending lots of emails. Now have lots of .BAD files each one containing an error message and somewhere in the middle, the actual email address it was supposed to be sent to. What is the easiest way to extract from each file "just" the "email address", so that I can have a list of the actual failed emails? I can code in C# and any suggestion will be truly welcomed. BAD SAMPLE TEXT: From: [email protected] To: [email protected] Date: Tue, 25 Sep 2012 12:12:09 -0700 MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="9B095B5ADSN=_01CD9B35032DF58000000066my.server.co" X-DSNContext: 7ce717b1 - 1386 - 00000002 - C00402D1 Message-ID: Subject: Delivery Status Notification (Failure) This is a MIME-formatted message. Portions of this message may be unreadable without a MIME-capable mail program. --9B095B5ADSN=_01CD9B35032DF58000000066my.server.co Content-Type: text/plain; charset=unicode-1-1-utf-7 This is an automatically generated Delivery Status Notification. Unable to deliver message to the following recipients, due to being unable to connect successfully to the destination mail server. [email protected] --9B095B5ADSN=_01CD9B35032DF58000000066my.server.com Content-Type: message/delivery-status Reporting-MTA: dns;my.server.com Received-From-MTA: dns;Social Arrival-Date: Tue, 25 Sep 2012 11:45:15 -0700 Final-Recipient: rfc822;[email protected] Action: failed Status: 4.4.7 --9B095B5ADSN=_01CD9B35032DF58000000066my.server.com Content-Type: message/rfc822 Received: from Social ([127.0.0.1]) by my.server.com with Microsoft SMTPSVC(7.5.7601.17514); Tue, 25 Sep 2012 11:45:15 -0700 ====================================== ...and lots more text after ===================== Mainly I want to find the "[email protected]" email right in the middle...

    Read the article

  • ASP.NET MVC Postbacks and HtmlHelper Controls ignoring Model Changes

    - by Rick Strahl
    So here's a binding behavior in ASP.NET MVC that I didn't really get until today: HtmlHelpers controls (like .TextBoxFor() etc.) don't bind to model values on Postback, but rather get their value directly out of the POST buffer from ModelState. Effectively it looks like you can't change the display value of a control via model value updates on a Postback operation. To demonstrate here's an example. I have a small section in a document where I display an editable email address: This is what the form displays on a GET operation and as expected I get the email value displayed in both the textbox and plain value display below, which reflects the value in the mode. I added a plain text value to demonstrate the model value compared to what's rendered in the textbox. The relevant markup is the email address which needs to be manipulated via the model in the Controller code. Here's the Razor markup: <div class="fieldcontainer"> <label> Email: &nbsp; <small>(username and <a href="http://gravatar.com">Gravatar</a> image)</small> </label> <div> @Html.TextBoxFor( mod=> mod.User.Email, new {type="email",@class="inputfield"}) @Model.User.Email </div> </div>   So, I have this form and the user can change their email address. On postback the Post controller code then asks the business layer whether the change is allowed. If it's not I want to reset the email address back to the old value which exists in the database and was previously store. The obvious thing to do would be to modify the model. Here's the Controller logic block that deals with that:// did user change email? if (!string.IsNullOrEmpty(oldEmail) && user.Email != oldEmail) { if (userBus.DoesEmailExist(user.Email)) { userBus.ValidationErrors.Add("New email address exists already. Please…"); user.Email = oldEmail; } else // allow email change but require verification by forcing a login user.IsVerified = false; }… model.user = user; return View(model); The logic is straight forward - if the new email address is not valid because it already exists I don't want to display the new email address the user entered, but rather the old one. To do this I change the value on the model which effectively does this:model.user.Email = oldEmail; return View(model); So when I press the Save button after entering in my new email address ([email protected]) here's what comes back in the rendered view: Notice that the textbox value and the raw displayed model value are different. The TextBox displays the POST value, the raw value displays the actual model value which are different. This means that MVC renders the textbox value from the POST data rather than from the view data when an Http POST is active. Now I don't know about you but this is not the behavior I expected - initially. This behavior effectively means that I cannot modify the contents of the textbox from the Controller code if using HtmlHelpers for binding. Updating the model for display purposes in a POST has in effect - no effect. (Apr. 25, 2012 - edited the post heavily based on comments and more experimentation) What should the behavior be? After getting quite a few comments on this post I quickly realized that the behavior I described above is actually the behavior you'd want in 99% of the binding scenarios. You do want to get the POST values back into your input controls at all times, so that the data displayed on a form for the user matches what they typed. So if an error occurs, the error doesn't mysteriously disappear getting replaced either with a default value or some value that you changed on the model on your own. Makes sense. Still it is a little non-obvious because the way you create the UI elements with MVC, it certainly looks like your are binding to the model value:@Html.TextBoxFor( mod=> mod.User.Email, new {type="email",@class="inputfield",required="required" }) and so unless one understands a little bit about how the model binder works this is easy to trip up. At least it was for me. Even though I'm telling the control which model value to bind to, that model value is only used initially on GET operations. After that ModelState/POST values provide the display value. Workarounds The default behavior should be fine for 99% of binding scenarios. But if you do need fix up values based on your model rather than the default POST values, there are a number of ways that you can work around this. Initially when I ran into this, I couldn't figure out how to set the value using code and so the simplest solution to me was simply to not use the MVC Html Helper for the specific control and explicitly bind the model via HTML markup and @Razor expression: <input type="text" name="User.Email" id="User_Email" value="@Model.User.Email" /> And this produces the right result. This is easy enough to create, but feels a little out of place when using the @Html helpers for everything else. As you can see by the difference in the name and id values, you also are forced to remember the naming conventions that MVC imposes in order for ModelBinding to work properly which is a pain to remember and set manually (name is the same as the property with . syntax, id replaces dots with underlines). Use the ModelState Some of my original confusion came because I didn't understand how the model binder works. The model binder basically maintains ModelState on a postback, which holds a value and binding errors for each of the Post back value submitted on the page that can be mapped to the model. In other words there's one ModelState entry for each bound property of the model. Each ModelState entry contains a value property that holds AttemptedValue and RawValue properties. The AttemptedValue is essentially the POST value retrieved from the form. The RawValue is the value that the model holds. When MVC binds controls like @Html.TextBoxFor() or @Html.TextBox(), it always binds values on a GET operation. On a POST operation however, it'll always used the AttemptedValue to display the control. MVC binds using the ModelState on a POST operation, not the model's value. So, if you want the behavior that I was expecting originally you can actually get it by clearing the ModelState in the controller code:ModelState.Clear(); This clears out all the captured ModelState values, and effectively binds to the model. Note this will produce very similar results - in fact if there are no binding errors you see exactly the same behavior as if binding from ModelState, because the model has been updated from the ModelState already and binding to the updated values most likely produces the same values you would get with POST back values. The big difference though is that any values that couldn't bind - like say putting a string into a numeric field - will now not display back the value the user typed, but the default field value or whatever you changed the model value to. This is the behavior I was actually expecting previously. But - clearing out all values might be a bit heavy handed. You might want to fix up one or two values in a model but rarely would you want the entire model to update from the model. So, you can also clear out individual values on an as needed basis:if (userBus.DoesEmailExist(user.Email)) { userBus.ValidationErrors.Add("New email address exists already. Please…"); user.Email = oldEmail; ModelState.Remove("User.Email"); } This allows you to remove a single value from the ModelState and effectively allows you to replace that value for display from the model. Why? While researching this I came across a post from Microsoft's Brad Wilson who describes the default binding behavior best in a forum post: The reason we use the posted value for editors rather than the model value is that the model may not be able to contain the value that the user typed. Imagine in your "int" editor the user had typed "dog". You want to display an error message which says "dog is not valid", and leave "dog" in the editor field. However, your model is an int: there's no way it can store "dog". So we keep the old value. If you don't want the old values in the editor, clear out the Model State. That's where the old value is stored and pulled from the HTML helpers. There you have it. It's not the most intuitive behavior, but in hindsight this behavior does make some sense even if at first glance it looks like you should be able to update values from the model. The solution of clearing ModelState works and is a reasonable one but you have to know about some of the innards of ModelState and how it actually works to figure that out.© Rick Strahl, West Wind Technologies, 2005-2012Posted in ASP.NET  MVC   Tweet !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();

    Read the article

< Previous Page | 55 56 57 58 59 60 61 62 63 64 65 66  | Next Page >