I’ve often had problems with os x Yosemite Mail forgetting settings I’ve set in the Accounts window. The most common being whether secure authentication is on or off.
Caution: Before making these changes be aware of the possible consequences of sending your password insecurely. You might do alright at home, but anyone sniffing packets (and I don’t mean sugar packets) in a coffee shop can see your unencrypted password.
New Default Settings
Mac Mail in Yosemite now has a default setting of using secure authentication when it sends passwords. If your email server is not using secure authentication for checking credentials, sending email will not work. To fix this, you only need to uncheck two option boxes on the Accounts Preferences window of Mail. The two checkboxes will prevent Mail from overriding your manual setting. One of them is found on the “Advanced” tab of the Accounts Preferences and the other one can be found on the “Edit SMTP Server list” window. You will also need to check one option box that will allow you to send plain username and password to your server. When Mail is open, go to Mail menu, Preferences, then click the Accounts tab.Uncheck the box that says “Automatically detect and maintain settings”. If this is checked, Mac Mail may overwrite whatever settings you change. We don’t need that. On the same window, find the option box that says “Allow insecure authentication”. This will let you authenticate using plain username and passwords. From the “Advanced” tab, go to “Account information” tab and find the dropdown box for “Outgoing Mail Server”.Click the dropdown and go to “Edit SMTP Server list”Go to the “Advanced” tab and uncheck the “Automatically detect and maintain settings” optionWhen Mail asks you if you want to save the changes, save the changes.
Editing The Plist
Sometimes Mac Mail saves the changes you’ve done in the Preferences window, sometimes it doesn’t. If you find that Mail is ignoring your changes, you can go straight to the plist file.
Open the file ~/Library/Mail/V2/MailData/Accounts.plist. Find the entry for UserAllowsInsecureAuthentication and make sure the value is true. (‘~’ denotes your user folder)
<dict> <key>AccountName</key> <string>PH</string> <key>AccountType</key> <string>SMTPAccount</string> <key>AuthenticationScheme</key> <string></string> <key>CanonicalEmailAddress</key> <string>firstname.lastname@example.org</string> <key>ConfigureDynamically</key> <false/> <key>Hostname</key> <string>101.202.303.404</string> <key>MaxMessageBytes</key> <integer>31457280</integer> <key>PortNumber</key> <integer>587</integer> <key>ShouldUseAuthentication</key> <string>YES</string> <key>UserAllowsInsecureAuthentication</key> <true/> <key>Username</key> <string>email@example.com</string> <key>uniqueId</key> <string>12345678790</string> </dict>
The snippet above is not the whole plist file, you need to look for a dict entry whose key is SMTPAccount. There is more than one dict entry in the plist file, so be careful where you make the changes. Make sure you are making changes on the email account which you’d like to allow for insecure passing of username and password.