<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cpierce.org</title>
	<atom:link href="http://www.cpierce.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cpierce.org</link>
	<description>Chris Lee Pierce</description>
	<lastBuildDate>Fri, 04 May 2012 13:27:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Being Charitable in a Slow Economy &#8211; A look at both sides of the coin</title>
		<link>http://www.cpierce.org/2012/05/being-charitable-in-a-slow-economy/</link>
		<comments>http://www.cpierce.org/2012/05/being-charitable-in-a-slow-economy/#comments</comments>
		<pubDate>Thu, 03 May 2012 07:12:48 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[charity]]></category>
		<category><![CDATA[fundraising]]></category>
		<category><![CDATA[non-profits]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=322</guid>
		<description><![CDATA[As a business owner and a community volunteer I love helping our local community as much as possible, however, it seems as if I&#8217;ve recently noticed a catch in the system. Non-profits most generally operate on funds provided by the charity of others. They have fundraisers and events, and they take the money raised on [...]]]></description>
			<content:encoded><![CDATA[<p>As a business owner and a community volunteer I love helping our local community as much as possible, however, it seems as if I&#8217;ve recently noticed a catch in the system.  Non-profits most generally operate on funds provided by the charity of others.  They have fundraisers and events, and they take the money raised on these things and use it to fund the cause they support.  I serve on a number of these boards so I do know that economic booms and slows directly effect these non-profits.  In a thriving economy members of these non-profits and community partners tend to be more generous in giving out money, but when they tighten the proverbial belt during slower economic times, some of these extra expenses are the first to be cut from the budget of many corporations.  The problem, however is that as these Corporations cut back on the giving, the non-profits suffer because unfortunately they have to cut back as well. </p>
<p><span id="more-322"></span></p>
<p>I thought I&#8217;d explore this problem from both sides of the coin.  First we will look at it from the non profit side.  I wanted to share some views I have on what generally happens and then a few suggestions that probably everyone already knows.  Afterwards, we&#8217;ll explore the same situation from the business standpoint.  We will look at what we can do to continue to support the organizations we love, even when the economy is quite booming as we&#8217;d like.  I will also share some of my corporate practices that I&#8217;ve either come up with or adopted along the way.</p>
<h3>The Non-Profit Side</h3>
<p>Non profits rely on money from others either through membership or charitable contribution to survive.  Without others supporting these non-profits they just don&#8217;t work, it is that simple.  Non profit organizations most generally have a board of directors that guide its flow.  Many times, in my observations, these board members are usually business leaders in the community; many of which serve on several boards throughout the community.  They are also expected to contribute, not only volunteer time, but also in many cases monetarily.  As I stated prior, when businesses cut back non-profits are usually one of the first places they trim.  This can be bad, especially if the non profit has come to rely on these contributions.  I server on several boards in my own community, and even chair or have chaired a few.  The most important thing for non-profits is to STICK TO BUDGET.  As with any business the budget is the key, and not a terribly complex concept to grasp.  If you don&#8217;t have the money set aside, don&#8217;t spend it.  I am firm believer in always having a budget for any non-profit you serve on.  If you sit on a non-profit that doesn&#8217;t have a budget it can be bad for the organization, and indirectly (as a board member) bad for you.  What some might not realize is that upon acceptance of a board position, you also take on a liability for the decisions of that board.  There are things like director and officer insurances that protect the members of the board, but the bottom line is that anyone can sue anyone else for anything they want.  This doesn&#8217;t mean it&#8217;s a valid argument, or that the person is right in doing so, but lawsuits happen daily for all sorts of various reasons.  From that standpoint, having a good budget in place makes sure the organization is able to continue to pay its bills, and do the good that is was setup to do in the first place.  Not only should non-profits have a budget in place, but in my opinion that budget should always balance.  As a board member, I personally don&#8217;t want to spend money that is not there.  I also don&#8217;t want to be facing the barrel of this loaded-gun later down the road; even if the &#8220;we&#8217;ve got a little extra money now&#8221; mentality should rear it&#8217;s head.  </p>
<h4>Balancing Your Budget</h4>
<p>Balancing the non-profit budget is pretty simple.  You make sure that your income and your expense are the same.  Now a budget is just a road map, so there is no surefire guarantee that things will work out exactly as on paper, but I&#8217;d rather have a map when heading into a jungle than just relying on instinct.  Especially when there is a board involved.  Boards, in general are made up a group of people usually with many differing opinions.  This can be a good thing, and it can be a bad thing.     In most cases it is the glue that makes non profits work.  It helps make the organization the best it can be by offering up differing opinions.  Just remember the Golden Rule of boards.  BALANCE THAT BUDGET.  I think it is important to always shoot a little high on your expenses to start with.  That way you have a little money saved up for unforeseeable events.  You never know when that air conditioner is finally going to give way, and while we never plan on things like that happening it usually comes at the worst possible times.  By having a high estimated expense side you&#8217;ll have room to adjust to these problems without blowing the budget.  The next thing I suggest is that you take those expenses and then come up with a good game plan as to how to come up with the funds on a categorical list of income that you have available.  I try to always shoot these lower than possible and then at the end try to cut expense (not project bigger incomes).  Remember working hard gets you so far, but you can&#8217;t make money grow on trees and you can&#8217;t just put a number in income that isn&#8217;t realistic and not expect failure.  If you make more money than expected, or pay less in your expenses great, you&#8217;ll have that money set aside for next year.  Just because an organization is non-profit doesn&#8217;t mean they have to break even on a yearly basis.  They just don&#8217;t need to be in the business of turning a profit for themselves, but rather using that money to benefit the cause.</p>
<h4>Focus on your organization and events</h4>
<p>Focusing on what your organization is about is the second key to a successful non-profit.  These are a few key things I want to touch on here.  First, if you don&#8217;t have a clear plan of action, you&#8217;ll simply be caught spinning your wheels.  I think this goes hand and hand with your budget.  After all, how are you going to budget if you don&#8217;t know what you plan on doing with the money.  Remember to focus on the key purpose of the organization.  Try not to get too far away from the purpose found in the by-laws as you steer the organization on its course.  Secondly, in fund raising, try to have only a few larger fund raising events instead of several small ones over and over again.  As a business owner, I can assure you I&#8217;d rather give you money just once than to think, oh no here they come for more money.  I think most business owners feel this way.  This is why I feel it is important to always run new ideas through a simple test for non-profits.  A) Does it benefit the things the organization wants to benefit (ie. the community, The goals of the organization, etc), or B) Does it make the organization money that can be used to benefit the things that the organization wants to benefit (ie. does this event/project raise funds for our organization, does this event/project make money that can be used to benefit our goals).  In 90% of the cases, if it doesn&#8217;t do one of those two things, then it probably will just be a time waster for the organization.  Non-profits can put hours of time into a project/event, do all the right things, and still not have one of these two things happen.  If you are trying to fund raise, remember that you must also consider your paid staffs cost in the project/event.  If the staff works 40 hours on something that only profits $500, you need to make sure that after paying your organizations staff, that the $500 mark isn&#8217;t reduced to nothingness.  It&#8217;s are scary thing for non-profits to let go of some of there smaller fundraisers, but in the long run your community partners will be happier to give to you just once, or twice a year than every time they see you coming. It&#8217;s also a good idea not to refocus on the same things as others.  If you have similar goals as other non-profits, try to partner with them to reach those common goals. </p>
<h4>Be mindful of the other side</h4>
<p>As a non-profit you must also remember a few key factors about the Businesses that support you.  First, these partners are supporting your organization because someone they trust asked them or because they directly believe in the organization.  Remember to nurture this relationship every chance you get.  Let them know that you appreciate them for helping your non-profit.  Make them know that they are getting something out of it.  It doesn&#8217;t always have to be advertisement.  Just knowing how the event/project worked to benefit others can sometimes be a great thing to share with your supporters.  Next, we must remember that just because someone tells us no on giving, doesn&#8217;t mean that they don&#8217;t support our cause.  Maybe timing was wrong, maybe they just got done doing something big for another organization, maybe they just don&#8217;t want to; regardless of the reason, remember that it isn&#8217;t always just because they don&#8217;t want to support you.  Be courteous and ask if you can check back with them on the next project/event.  Lastly, most businesses budget too.  This means that its a good idea to get your project/event planned far enough in advance that you can make sure to let your supporters know about it.  Most businesses plan how much money they are going to give well in advance, and if they can budget you in it&#8217;s almost as good as knowing you are going to be funded.  Keep your supports informed above all else, and let them know what is going on in your organization.  I find it much more easy to give when an organization sometimes sends me information where they aren&#8217;t asking for money.  It makes it feel more like a relationship and less of a hand out asking for money.  </p>
<h4>Non-Profit Conclusion</h4>
<p>The non-profit side of the coin can be tough.  Harder times, don&#8217;t mean that less money is spent on expenses, but many times does mean that business will not support you financially because of their own budget restrictions.  It&#8217;s important to make supporters aware of your plans, and keep focused on a clear vision for the organization.  Always try to make your supporters feel appreciated and encourage them with stories of the success of your end goals.  These things lead to a better relationship with your community partners, and help keep you in the spotlight when it comes to businesses contributing to your cause.  Innovative and Proven Projects/Fundraisers tend to be more successful than the same old event that everyone else does.  Bake Sales, Golf Tourney&#8217;s, Car Washes, and the like are great, but they can get a bit repetitive and boring on business owners if lots of organizations have the same type event in your community.  Remember that you are going to same businesses that all the other non-profits in the area are going to, so a clever new idea might be more welcomed.  Set yourself apart from the herd.  </p>
<h3>The Business Side</h3>
<p>Business owners and managers are constantly called upon by non-profits and organizations for support.  To the point where it can sometimes feel as if one can&#8217;t get any work done without being bothered.  As stated above, when the economy slows businesses tend to tighten up the belt.  They stop giving as much and want to make sure that the money they do give is well deserved and goes to benefit something they truly believe in.  Business owners will often give money to a cause near and dear even in slower times, but in todays fast paced world, business owners and managers can often become inundated with requests for support.  It is important to know how to handle these requests and not let them get in the way of your day to day business operations.  During my business career I&#8217;ve adopted several methods in helping me do this.  These methods are great guidelines, and while they don&#8217;t always fit the situation, they do tend to offer the beginning of a roadmap on what to do when non-profits come calling, and if you are in a commercial area and have been in business for any amount of time, or perhaps even if you just have a phone number or an email address, then trust me when I say &#8211; THEY WILL CALL AND ASK YOU FOR SUPPORT.</p>
<h4>A clear understanding</h4>
<p>First, I recommend that as a business you have a budget, which you most likely do.  You should also know how much you are willing to spend on two different line items of that budget; Advertisement and Charity.  Just as important is the ability to recognize the difference in each.  Remember that sometimes what can seem like advertisement is just you contributing to another organization (Be it non-profit or profit).  If an advertisement isn&#8217;t creating a proper return on investment (ROI) then you probably should discontinue with it.  At the same time, just because you sponsor a charity that you believe to be a good cause, doesn&#8217;t mean that you are just giving your money away.  Remember that people see what you do in the community.  There are also times when charities will put your names on thank you advertisements, and promote you as the sponsor for their event/project.  These things can sometimes be more profitable and have a bigger return on your money than standard forms of advertisement.  In general just knowing have to spend, what you want to spend it on, and when you want to spend is only a good start.  It is also important to make your staff aware of your goals and why you can&#8217;t support every cause (no matter how great) that comes calling.  Come up with clear procedures on how to handle these phone calls, emails, and office visits.  The best idea I have adopted thus far is from a friend who came up with a grant consideration form.  The form (<a href="http://www.csdurant.com/files/community/grant_request.pdf">my copy available for anyone who&#8217;d like to create one</a>) explains in writing that while the business would love to support every organization it simply just can&#8217;t due to the overwhelming amount of requests that it receives.   It asks for simple details of the reasons funds are being requested and then we meet to determine which of the requests to fulfill.  The form does a few things from a business stand point.  Primarily, it makes it where you as a key person in your business, don&#8217;t have to stop what you are doing each time a request for funds comes in.  Alternatively, it also creates a form that can be filled out more conveniently keeping in respect both parties time.  Thirdly, the form tries to eliminate last minute events/projects by asking them to fill the form out in advance of the event.  My form states that we only meet once a month and will determine which projects to support at that time.  While this is what normally happens, we do look at them as they come in and make alternate arrangements on a case by case basis if needed.  Last, the form stops about 50% of the people who are asking us for money from asking us for money.  It amazes me that people who want a donation, or sponsorship won&#8217;t even fill out a simple one page form to get it.  This however makes my job very easy in telling those people that I am sorry but I can not support their project/event.  If they do not have time to fill out a form, why should you have time to support them with either your time or money? Print these and education your employees on how to hand them out.  Again this isn&#8217;t a fix all but it is definitely a great start in eliminating some hassle.  </p>
<h4>What about that one you just have to support no matter what?</h4>
<p>There is always those times, when you have to support an organization.  Perhaps it&#8217;s because of the person asking.  Maybe it is because that organization is near and dear to your heart.  Maybe you just feel led to help.  No matter the reason, remember that you don&#8217;t always have to support financially. You can volunteer time and service to events/projects.  We are often asked to donate an item from our business instead of giving money.  Our business is a service business for computer repair, and we love promoting that business.  I will (upon the recommendation of a friend in the restaurant business) generally give a certificate for a &#8220;Free Computer Tune Up&#8221; or a &#8220;Free Hour of Labor&#8221; certificate before I will give an organization money.  The reason is two fold.  1) The certificate gives my business an opportunity to be advertised. 2) I possibly gain a customer that didn&#8217;t know about my business prior.  I think the certificate / gift card idea is also great for the business.  Several times I&#8217;ve seen an item go in a silent auction for 5 times what I&#8217;d normally buy it in the store for.  This gives the businesses opportunities for ROI, while still letting the organization have a successful event.  A win for both parties!</p>
<h4>Knowing when to say NO</h4>
<p>Unfortunately there are also times when you need to say no.  No isn&#8217;t a bad thing, especially if the person asking for the donation doesn&#8217;t have a cause that fits into your idea of something your business would like to support.  The 2 best examples I can give about this are from calls I receive on an almost quarterly basis from two organizations.  I&#8217;ll also share my tip for figuring out if I&#8217;m being scammed by a fake.  The first is a call I receive from various persons saying they are selling tickets, t-shirts, whatever to benefit the local school.  All these whatever will be printed and given to the school to hand out at all the football games, etc.  Sounds like a great thing, until you realize that this person doesn&#8217;t work for your local school district.  In fact, they probably don&#8217;t even give out the items they say they are going to give out (who knows!).  The best thing I tell them if I find out is that I support the organization, school, etc. either directly or locally which is true.  I would much rather have a student/local person ask me for a donation, than a cold call sales person from a company trying to turn a profit (even if they are going to share with a great non-profit).  Sometimes, however I simply don&#8217;t know if the call is from someone local or from someone trying to scam/sale for the organization.  The simplest solution to this problem is something I thought of a while back.  Listen to the offer, and if you still can&#8217;t decide then tell them you need to consult with someone else within your organization.  Ask for a number that you can call them back at.  If the number isn&#8217;t local, then chances are neither is the person on the other end.  This method of weeding out sales calls hasn&#8217;t failed me as of yet.  If you still can&#8217;t determine, send them a <a href="http://www.csdurant.com/files/community/grant_request.pdf">Grant Request Form</a> from the previous section via fax or email.  </p>
<h4>Business Conclusion</h4>
<p>In conclusion, businesses always want to support their communities and make them better places to live.  There are just more organizations out there than we can support.  It doesn&#8217;t mean you don&#8217;t have a worthy cause, it just means you&#8217;ll have to get your funds from another source.  Remember that the people asking you for donations/support are usually customers and so you always want to be mindful of the results of supporting or not supporting them.  You don&#8217;t have to support with money though.  You can use the steps outlined above to both help the great organizations in your community and promote your business.  Just remember that it doesn&#8217;t make you a bad guy to say no, even if you&#8217;ve sponsored or donated before.   By setting up guidelines and procedures, budgeting your donation and advertising expenses, and making sound judgement calls, both your business and your community can benefit from a mutual relationship that encourages team work and promotes both the non-profit and your business.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2012/05/being-charitable-in-a-slow-economy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Will hundreds of thousands of people be without Internet come July?</title>
		<link>http://www.cpierce.org/2012/04/will-hundreds-of-thousands-of-people-be-without-internet-come-july/</link>
		<comments>http://www.cpierce.org/2012/04/will-hundreds-of-thousands-of-people-be-without-internet-come-july/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 23:25:34 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[Bind]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[Domain Name Services]]></category>
		<category><![CDATA[FBI]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[Rogue Servers]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=297</guid>
		<description><![CDATA[For those of you following the recent fbi.gov news release saying that users could lose their Internet: I thought I&#8217;d give you some details of how DNS works and why you would/could potentially lose your Internet access. Let&#8217;s start by explaining what DNS is &#8230; Domain Name Services (DNS for short) is basically a telephone [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you following the recent <a href="http://www.fbi.gov">fbi.gov</a> news release saying that users could lose their Internet:</p>
<p>I thought I&#8217;d give you some details of how DNS works and why you would/could potentially lose your Internet access.  Let&#8217;s start by explaining what DNS is &#8230; Domain Name Services (DNS for short) is basically a telephone book for computers.  In simplest terms, it takes IP Addresses (<a href="http://173.194.33.33">173.194.33.33</a>) which are numbers that are easy for computers to work with and matches them up with URL&#8217;s (<a href="http://www.google.com">www.google.com</a>) which are website names easy for people to work with.  This is done so that when you want to go to a website you don&#8217;t have to know what IP address the website is hosted at but just the name itself.  DNS does that work for you.</p>
<p><span id="more-297"></span></p>
<p>Now let&#8217;s say that a bad guy was running what we call a rogue DNS server (or one that isn&#8217;t a part of the normal Internet cluster).  They could say that <a href="http://www.google.com">www.google.com</a> was located at a different IP Address than <a href="http://173.194.33.33">173.194.33.33</a>.  You&#8217;re computer (Infected with Malware) could be changed to lookup addresses with this &#8220;bad guy&#8221; DNS Server.</p>
<p>That would mean you would go to a server that might look and feel just like the real google, but it would really be controlled by the bad guys.  They would start collecting information (Credit Cards, Logins to the Real Site, etc) and then begin using that information on the Internet to make themselves money or gain access to places they shouldn&#8217;t have access (your bank account, etc).  This isn&#8217;t so bad when it is google but if they pretend to be PayPal, your bank, or your credit card site they can get a lot of info you do not want them to have.</p>
<p>Is this a real threat? Yes, of course. Is it going to be a disaster come July? &#8230;. I&#8217;m inclined to think not.</p>
<h3>The Facts</h3>
<p>The FBI has already put a stop to a large ring of these rogue DNS servers, but they have so many people that are infected (they know this because they see how many queries are coming to the servers), that they don&#8217;t want to just turn them off.  So they issued a court order to have the rogue (bad guy) servers replaced with good servers to deliver good content to infected machines.  At least until July to give people enough time to make sure they are fixed.  Once the July deadline is reached they&#8217;ll start taking these clean DNS servers off line and people will appear to be without Internet.  The simple fact of the matter is if you knew the IP of the place you wanted to go you could still do so, but no one does that because we all rely on DNS.</p>
<p>If in fact you were infected and you were pointing to one of these rogue servers the worst case scenario is that you&#8217;d have to get your computer cleaned for malware and viruses.  At the least you&#8217;d have to change your DNS Servers back to legitimate DNS servers.  DNS Servers can be changed easily with only a few clicks of the mouse.  Most people won&#8217;t know the difference in good settings and bad though.  http://www.dns-ok.us is a website you can visit to see if you are infected or not.  I find it funny however that the bad guys could simply point dns-ok.us to a different server that showed that your computer was fine, so there really isn&#8217;t a surefire check of this.</p>
<p>Again the worst that could happen is your Internet won&#8217;t work on your personal or work  computer.  If you are still worried I might recommend that you install a <a href="http://www.csdurant.com/sales/antivirus">proper antivirus solution</a> on your systems (<a href="http://www.csdurant.com/sales/antivirus">https://www.csdurant.com/sales/antivirus</a>), and scan your computer with Malware Bytes (available on <a href="http://www.csdurant.com/">www.csdurant.com</a> on the right side of the page).</p>
<p>In closing these type of attacks have been going on for years, and I find it funny that someone decided that it should get this much news coverage all of the sudden.  Also to note, if the FBI has shut down a ring of bad guys that are using this kind of technique to attack computers, be assured that they&#8217;ll come up with a new, even better mouse trap for collecting your money off of the Internet.  As always I encourage you to be careful, buy only from sites you know and trust, and run routine scans on your computer to make sure you don&#8217;t become a victim.  I think it would be a much better plan for the FBI to use the same technique and just redirect infected computers using DNS to a page that says &#8220;Hey you are infected here are steps to fix this&#8221;, but they are government and government sometimes chooses the harder of two paths.</p>
<h3>More Info</h3>
<p><a href="http://www.fbi.gov/news/stories/2011/november/malware_110911">http://www.fbi.gov/news/stories/2011/november/malware_110911</a><br />
<a href="http://www.foxnews.com/scitech/2012/04/23/hundreds-thousands-may-lose-internet-in-july/">http://www.foxnews.com/scitech/2012/04/23/hundreds-thousands-may-lose-internet-in-july/</a><br />
<a href="http://www.dcwg.org">http://www.dcwg.org</a><br />
<a href="http://www.us-cert.gov/current/">http://www.us-cert.gov/current/</a><br />
<a href="http://www.isc.org">http://www.isc.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2012/04/will-hundreds-of-thousands-of-people-be-without-internet-come-july/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Understanding and Creating User Quota with Dovecot 1.2+</title>
		<link>http://www.cpierce.org/2012/04/understanding-and-creating-user-quota-with-dovecot-1-2/</link>
		<comments>http://www.cpierce.org/2012/04/understanding-and-creating-user-quota-with-dovecot-1-2/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 13:30:30 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[Debian Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[1.2]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[pop3]]></category>
		<category><![CDATA[quota]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=274</guid>
		<description><![CDATA[The dovecot wiki for 1.2 was an afterthought in my opinion. It seems they were already starting to focus on 2.0 and just kinda threw 1.2+ (The version that comes with debian squeeze) into the Debian 1.0/1.1 wiki located at http://wiki1.dovecot.org/Quota. I read through this a bunch and decided I&#8217;d write a little tutorial about [...]]]></description>
			<content:encoded><![CDATA[<p>The dovecot wiki for 1.2 was an afterthought in my opinion.  It seems they were already starting to focus on 2.0 and just kinda threw 1.2+ (The version that comes with debian squeeze) into the Debian 1.0/1.1 wiki located at <a href="http://wiki1.dovecot.org/Quota">http://wiki1.dovecot.org/Quota</a>.  I read through this a bunch and decided I&#8217;d write a little tutorial about how to setup a user quota using MySQL and Dovecot.  From what I&#8217;ve seen on the search engines this is something a lot of people are looking for.  My mail server setup is based on the configuration from <a href="http://workaround.org/ispmail/squeeze">http://workaround.org/ispmail/squeeze</a> which provides a great foundation for setting up a stable PostFix/DoveCot/Amavisd-new solution.  So all I needed was a few small things to add to make the quota system work (even with the client reporting the quota to the customer).</p>
<p><span id="more-274"></span></p>
<p>First we need to make a small change to our MySQL database that handles users &#8230; From the tutorial mentioned above my mailusers are stored in the mailserver database and are stored in the virtual_users table.  The table by default looks like this:</p>
<div class="codecolorer-container mysql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="mysql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=TABLE"><span style="color: #990099; font-weight: bold;">TABLE</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>users`</span> <span style="color: #FF00FF;">&#40;</span><br />
&nbsp; <span style="color: #008000;">`id`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">int</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AUTO_INCREMENT"><span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span></a><span style="color: #000033;">,</span><br />
&nbsp; <span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">int</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
&nbsp; <span style="color: #008000;">`email`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">varchar</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
&nbsp; <span style="color: #008000;">`password`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">varchar</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">32</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=PRIMARY%20KEY"><span style="color: #990099; font-weight: bold;">PRIMARY KEY</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`id`</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=UNIQUE"><span style="color: #FF9900; font-weight: bold;">UNIQUE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=KEY"><span style="color: #990099; font-weight: bold;">KEY</span></a> <span style="color: #008000;">`email`</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`email`</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=KEY"><span style="color: #990099; font-weight: bold;">KEY</span></a> <span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CONSTRAINT"><span style="color: #990099; font-weight: bold;">CONSTRAINT</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>users<span style="color: #008080; font-weight: bold;">_</span>ibfk<span style="color: #008080; font-weight: bold;">_</span>1`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=FOREIGN%20KEY"><span style="color: #990099; font-weight: bold;">FOREIGN KEY</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=REFERENCES"><span style="color: #990099; font-weight: bold;">REFERENCES</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>domains`</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`id`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ON"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DELETE"><span style="color: #990099; font-weight: bold;">DELETE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CASCADE"><span style="color: #990099; font-weight: bold;">CASCADE</span></a><br />
<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ENGINE"><span style="color: #990099; font-weight: bold;">ENGINE</span></a><span style="color: #CC0099;">=</span><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INNODB"><span style="color: #990099; font-weight: bold;">InnoDB</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AUTO_INCREMENT"><span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span></a><span style="color: #CC0099;">=</span><span style="color: #008080;">119</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DEFAULT"><span style="color: #990099; font-weight: bold;">DEFAULT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CHARSET"><span style="color: #FF9900; font-weight: bold;">CHARSET</span></a><span style="color: #CC0099;">=</span>utf8<span style="color: #000033;">;</span></div></td></tr></tbody></table></div>
<p>Simply enough we just need to add a quota_kb field with the type INT (11) unsigned so that our database table looks like this:</p>
<div class="codecolorer-container mysql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="mysql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=TABLE"><span style="color: #990099; font-weight: bold;">TABLE</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>users`</span> <span style="color: #FF00FF;">&#40;</span><br />
&nbsp; <span style="color: #008000;">`id`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">int</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AUTO_INCREMENT"><span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span></a><span style="color: #000033;">,</span><br />
&nbsp; <span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">int</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
&nbsp; <span style="color: #008000;">`email`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">varchar</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
&nbsp; <span style="color: #008000;">`password`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">varchar</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">32</span><span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
&nbsp; <span style="color: #008000;">`quota<span style="color: #008080; font-weight: bold;">_</span>kb`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">int</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=UNSIGNED"><span style="color: #FF9900; font-weight: bold;">unsigned</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DEFAULT"><span style="color: #990099; font-weight: bold;">DEFAULT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=PRIMARY%20KEY"><span style="color: #990099; font-weight: bold;">PRIMARY KEY</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`id`</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=UNIQUE"><span style="color: #FF9900; font-weight: bold;">UNIQUE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=KEY"><span style="color: #990099; font-weight: bold;">KEY</span></a> <span style="color: #008000;">`email`</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`email`</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=KEY"><span style="color: #990099; font-weight: bold;">KEY</span></a> <span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span><br />
&nbsp; <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CONSTRAINT"><span style="color: #990099; font-weight: bold;">CONSTRAINT</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>users<span style="color: #008080; font-weight: bold;">_</span>ibfk<span style="color: #008080; font-weight: bold;">_</span>1`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=FOREIGN%20KEY"><span style="color: #990099; font-weight: bold;">FOREIGN KEY</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`domain<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=REFERENCES"><span style="color: #990099; font-weight: bold;">REFERENCES</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>domains`</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`id`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ON"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DELETE"><span style="color: #990099; font-weight: bold;">DELETE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CASCADE"><span style="color: #990099; font-weight: bold;">CASCADE</span></a><br />
<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ENGINE"><span style="color: #990099; font-weight: bold;">ENGINE</span></a><span style="color: #CC0099;">=</span><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INNODB"><span style="color: #990099; font-weight: bold;">InnoDB</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AUTO_INCREMENT"><span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span></a><span style="color: #CC0099;">=</span><span style="color: #008080;">119</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DEFAULT"><span style="color: #990099; font-weight: bold;">DEFAULT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CHARSET"><span style="color: #FF9900; font-weight: bold;">CHARSET</span></a><span style="color: #CC0099;">=</span>utf8<span style="color: #000033;">;</span></div></td></tr></tbody></table></div>
<p>Once this is done you might want to populate a default into the users folder like so:</p>
<div class="codecolorer-container mysql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="mysql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=UPDATE"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> virtual_users <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=SET"><span style="color: #990099; font-weight: bold;">SET</span></a> quota_kb <span style="color: #CC0099;">=</span> <span style="color: #008080;">250000</span><span style="color: #000033;">;</span></div></td></tr></tbody></table></div>
<p>The above code would set a default quota number to 250,000KB or 250MB.</p>
<p>Now that we have the groundwork laid in our MySQL database we simply need to enable a few features in dovecot for the quota to work.<br />
First we need to tell our protocols to support the quota plugin by adding in the mail_plugins into the imap and pop sections of our config like so:</p>
<p><strong>/etc/dovecot/dovecot.conf</strong></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">protocol imap <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; mail_plugins = quota imap_quota<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
protocol pop3 <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; mail_plugins = quota<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>Next we need to set a default quota for people who don&#8217;t have a quota set for them in quota_kb (or one that is set to null).  We do this in the plugins section of the dovecot.conf.  This is where the wiki is a bit confusing because it tells you how to do this but somewhat implies (at least to me) that you have to use DICT to connect to the SQL service to check on the quota for individual users.</p>
<p><strong>/etc/dovecot/dovecot.conf</strong></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">plugin <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; quota = maildir:User quota<br />
&nbsp; quota_rule = <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #007800;">storage</span>=1G<br />
&nbsp; quota_rule2 = Trash:<span style="color: #007800;">storage</span>=+<span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">%%</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>By default our users will all have a quota of 1GB now.  The default quota is checked using maildir size and we add the quota_rule2 to avoid a potential endless loop if the mail quota is met.  The quota_rule2 adds 10% to the quota just for the trash folder so that we can actually delete mail when we reach the quota.</p>
<p>Now we just need to tell the dovecot server about our previously created SQL quota_kb so that it knows that we might have some users who have different defaults than the 1GB limit placed in the dovecot.conf.  To do this we edit our dovecot-sql.conf that handles our users.  Our default user_query </p>
<p><strong>/etc/dovecot/dovecot.conf</strong></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; userdb static <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; args = <span style="color: #007800;">uid</span>=<span style="color: #000000;">5000</span> <span style="color: #007800;">gid</span>=<span style="color: #000000;">5000</span> <span style="color: #007800;">home</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>vmail<span style="color: #000000; font-weight: bold;">/%</span>d<span style="color: #000000; font-weight: bold;">/%</span>n <span style="color: #007800;">allow_all_users</span>=<span style="color: #c20cb9; font-weight: bold;">yes</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>needs to be changed to the following:<br />
<strong></etc/dovecot/dovecot.conf</strong></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; userdb sql <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; args = <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>dovecot<span style="color: #000000; font-weight: bold;">/</span>dovecot-sql.conf<br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p><strong>/etc/dovecot/dovecot-sql.conf</strong></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">user_query = SELECT CONCAT<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/var/vmail/'</span>,CONCAT<span style="color: #7a0874; font-weight: bold;">&#40;</span>SUBSTRING_INDEX<span style="color: #7a0874; font-weight: bold;">&#40;</span>email,<span style="color: #ff0000;">'@'</span>,-<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #ff0000;">'/'</span>,SUBSTRING_INDEX<span style="color: #7a0874; font-weight: bold;">&#40;</span>email,<span style="color: #ff0000;">'@'</span>,<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> AS home, <span style="color: #000000;">5000</span> AS uid, <span style="color: #000000;">5000</span> AS gid, concat<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'*:storage='</span>, quota_kb<span style="color: #7a0874; font-weight: bold;">&#41;</span> AS quota_rule FROM virtual_users WHERE <span style="color: #007800;">email</span>=<span style="color: #ff0000;">'%u'</span></div></td></tr></tbody></table></div>
<p>This sends the quota_kb value into the user quota rule as follows:   *:storage=250000<br />
I say that to explain that you could also add max messasges and anything else you wanted there.  Note that I used a % on my trash folder so a quota of 250MB would allow 25MB overage in the trash folder automatically.  This does take 1 extra SQL query but I don&#8217;t think it really taxes the server at all to do another SQL Query.</p>
<p>Now that we have this done we simply apply the configuration by restarting the dovecot service:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>dovecot reload</div></td></tr></tbody></table></div>
<p>Test by logging in to a client that has quota support (IMAP) and seeing if the quota limit is in place.  I recommend thunderbird if you don&#8217;t have a client that shows IMAP quotas.  Note this also fixes the quota in Roundcube (and i&#8217;m sure other) Webmail Clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2012/04/understanding-and-creating-user-quota-with-dovecot-1-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Roundcube for your Debian Squeeze Mail Server</title>
		<link>http://www.cpierce.org/2012/04/roundcube-for-your-debian-squeeze-mail-server/</link>
		<comments>http://www.cpierce.org/2012/04/roundcube-for-your-debian-squeeze-mail-server/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 06:15:58 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[Debian Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mail Server]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webmail]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[ispmail]]></category>
		<category><![CDATA[roundcube]]></category>
		<category><![CDATA[squeeze]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=271</guid>
		<description><![CDATA[I am a big fan of the workaround.org &#8220;ISPmail tutorial&#8221; for setting up mail servers. It works pretty good and is usually pretty detailed and to be honest, I&#8217;ve been using it for years to configure my mail servers under Debian Linux. After migrating to squeeze the first time, I just used the tutorials &#8220;Migrating [...]]]></description>
			<content:encoded><![CDATA[<p>I am a big fan of the workaround.org &#8220;<a href="http://workaround.org/ispmail/squeeze/big-picture">ISPmail tutorial</a>&#8221; for setting up mail servers.  It works pretty good and is usually pretty detailed and to be honest, I&#8217;ve been using it for years to configure my mail servers under Debian Linux.  After migrating to squeeze the first time, I just used the tutorials &#8220;Migrating from the Lenny&#8221; section to update my server.  </p>
<p>I&#8217;ve always loved <a href="http://roundcube.net/">roundcube</a> as well and even in the early days found myself stopping the tutorial and configuring my own copy of roundcube.  The new tutorial actually makes mention of roundcube so I was excited when I got the opportunity to configure a new mail server.  The only disheartening thing was that the mail server tutorial for squeeze isn&#8217;t finished to the point where it talks about roundcube configuration.  I&#8217;ve set it up many times so I thought I&#8217;d try to use the generic debian apt packages and go ahead and document my steps along the way.  Here we go&#8230;<br />
<span id="more-271"></span><br />
Step one:<br />
You need a working mail server preferably using the workaround.org mail tutorial.</p>
<p>Step two:<br />
lets go ahead and install the roundcube packages we need</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">apt-get install</span> roundcube roundcube-mysql</div></td></tr></tbody></table></div>
<p>As you go through go ahed and let it configure the roundcube package to connect to mysql.  It will create a username and random password for this connection.  The information is stored in /etc/roundcube/debian-db.php if you need to change something later.</p>
<p>Step three &#8211; configuring the apache side:<br />
at first glance I was a little frightened by how they had made the roundcube package interface in with Apache2.  The generic debian /etc/apache2/conf.d/roundcube config is setup to work as a wildcard alias.  This means you can access roundcube from any active apache site by going to <domain.com>/roundcube or even configure it to <domain.com>/webmail or something.  I absolutely hate this config because it interferes with default structure of websites (Example, if a client already had a /webmail folder it could get confusing).  In the past I&#8217;ve just downloaded roundcube and installed it in the default html folder.  This allows me to point all sites on the mail server to the default document root and serve up mail to all of them.  This time I wanted a little more custom config.</p>
<p>Step three point one:<br />
Debian links and installs roundcube in a way that is pretty nice.  Configs are in /etc/roundcube etc. but all the packages tie back together with apache +FollowSymLinks and are stored in /var/lib/roundcube.  This gave me the idea for my current configuration mixed with the default.  First all my users are on the same IP for the mail server and I just use DNS to point probably like most of you do.  I decided that I wanted all my customers that came to mail.<somedomain> or webmail.<somedomain> to be served up the roundcube files while still leaving the other sites (even the default mail server page to point elsewhere).  I began by creating a file in /etc/apache2/sites-available that looked very similar to the one used by the default debian /etc/apache2/conf.d/roundcube file.  </p>
<p><strong>/etc/apache2/sites-available/webmail</strong></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;</span>VirtualHost 10.0.18.1:<span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ServerAdmin chrispierce<span style="color: #000000; font-weight: bold;">@</span>gmail.com<br />
&nbsp; &nbsp; &nbsp; &nbsp; ServerName mail.somehost.com<br />
&nbsp; &nbsp; &nbsp; &nbsp; ServerAlias mail.<span style="color: #000000; font-weight: bold;">*</span> webmail.<span style="color: #000000; font-weight: bold;">*</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; DocumentRoot <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>roundcube<br />
&nbsp; &nbsp; &nbsp; &nbsp; Alias <span style="color: #000000; font-weight: bold;">/</span>program<span style="color: #000000; font-weight: bold;">/</span>js<span style="color: #000000; font-weight: bold;">/</span>tiny_mce<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>tinymce<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>roundcube<span style="color: #000000; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Options +FollowSymLinks<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowOverride All<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Order allow,deny<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Allow from all<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>roundcube<span style="color: #000000; font-weight: bold;">/</span>config<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Options <span style="color: #660033;">-FollowSymLinks</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowOverride None<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>roundcube<span style="color: #000000; font-weight: bold;">/</span>temp<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Options <span style="color: #660033;">-FollowSymLinks</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowOverride None<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Order allow,deny<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Deny from all<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>roundcube<span style="color: #000000; font-weight: bold;">/</span>logs<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Options <span style="color: #660033;">-FollowSymLinks</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowOverride None<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Order allow,deny<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Deny from all<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>tinymce<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Options Indexes MultiViews FollowSymLinks<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowOverride None<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Order allow,deny<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Allow from all<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span><br />
<span style="color: #000000; font-weight: bold;">&lt;/</span>VirtualHost<span style="color: #000000; font-weight: bold;">&gt;</span></div></td></tr></tbody></table></div>
<p>As you can see there are only a few stray lines that need explaining.  First I point the default ServerName to the mail host I have setup.  Then I use wildcards in my ServerAlias to point all sites that reverse to my IP that have mail or webmail in them to go to the same place.  I altered the tiny_mce code just a tad in the Alias just to make sure it pointed to the right spot in roundcube (i&#8217;m not using /roundcube in my url).  The rest still holds true to the apache2 generic config found in /etc/apache2/conf.d  </p>
<p>Step three point two:<br />
Next we need to do 3 things.  Enable the apache configuration for our new site (webmail):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">a2ensite webmail</div></td></tr></tbody></table></div>
<p>This links the site into /etc/apache2/sites-enabled<br />
Secondly we disable the old configuration so that roundcube isn&#8217;t loaded when we goto /roundcube or /webmail on a page by removing the file in conf.d.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>conf.d<span style="color: #000000; font-weight: bold;">/</span>roundcube</div></td></tr></tbody></table></div>
<p>*Note if you ever want to put this back you can just create a symbolic link back to /etc/roundcube/apache.conf named roundcube in /etc/apache2/conf.d</p>
<p>Last we enable the changes by reloading the apache2 service.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 reload</div></td></tr></tbody></table></div>
<p>We should now be able to test the configuration by going to webmail.somedomain.com and seeing if we get the default roundcube page.</p>
<p>Step four &#8211; Making a few changes to the roundcube configuration<br />
At this point you can install a different skin or make any configuration changes you&#8217;d like.  The one thing I did notice is the default install has a problem moving mail to trash because it doesn&#8217;t create the default trash folder for you.  There were a few other things I&#8217;ll note too.  Let us now take a look inside the <strong>/etc/roundcube/main.inc.php</strong> file and make a few small changes.</p>
<p>First the default host should be changed to the domain or ip you use to check your mail.  Note my mail server uses SSL so I have configured the site as such but ssl:// is not a required thing (unless you like security).</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$rcmail_config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'default_host'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'ssl://10.0.18.1'</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Since I&#8217;m using SSL I also had to make the following change.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$rcmail_config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'default_port'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">993</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>I also don&#8217;t like showing the drop down for the mail server as an option so as you can see above I removed the array() enclosing the code for the server.  This hard codes the mail server and drops the option to show what the mail server is on the login page.  I think this looks overall more clean than showing what the mail server connection is, and since I only have one mail server I don&#8217;t really see the point of showing the world what it is.  </p>
<p>Next I go ahead and configure sendmail to send out of my localhost using the following configs.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$rcmail_config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'smtp_server'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$rcmail_config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'smtp_user'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'%u'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$rcmail_config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'smtp_pass'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'%p'</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>This ensures the mail sent out is actually sent from the specific user using the local mail server.  If you are hosting roundcube on a different server than the mailserver you might need to adjust this to fit.</p>
<p>I went ahead and made the change to the $rcmail_config['product_name'] and just did &#8216;Webmail&#8217; instead of &#8216;Roundcube Webmail&#8217;.  This comes from me not helping the bad guys with any more information than they need by default.  If they don&#8217;t recognize the client, then I don&#8217;t see a point in spelling it out for them.</p>
<p>By default my structure of folders is INBOX, Drafts, Sent Mail, Spam, and Trash so I make the changes to those accordingly for box *_mbox and default_imap_folders.</p>
<p>Lastly to fix the problem I mentioned above we need to create these default folders when We login using the following.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$rcmail_config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'create_default_folders'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>You can also protect these folders from being removed if you&#8217;d like by using protect_default-folders set to TRUE.  I like this as it doesn&#8217;t have to recreate the folders each time.  I bumped my session time up to 45 minutes just to give slow webmail users the ability to not get logged out when typing a lengthy email.  Aside from this you can change the settings as you see.  </p>
<p>Next I always change the default &#8220;username&#8221; locale to &#8220;Email&#8221; as I think it makes more sense to show it as email since you have to type the entire address and not just the default username of the mail user to get logged in (unless you configure more which I won&#8217;t get into here).  We do this by editing the setting in <strong>/usr/share/roundcube/program/localization/en_US</strong> specifically in <strong>labels.inc</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$labels</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'username'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Email'</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>I go ahead and change my junk mailbox label to say Spam and my sent folder to say Sent Mail just to keep things conform.  At this point you can install any skin you&#8217;d like via <strong>/var/lib/roundcube/skins</strong> and any plugins you want to use via <strong>/var/lib/roundcube/plugins</strong>.  I hope this helps someone and please don&#8217;t hesitate to ask questions if you have them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2012/04/roundcube-for-your-debian-squeeze-mail-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Posting as your User on your Facebook Page</title>
		<link>http://www.cpierce.org/2012/01/posting-as-your-user-on-your-facebook-page/</link>
		<comments>http://www.cpierce.org/2012/01/posting-as-your-user-on-your-facebook-page/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 03:34:16 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Social Media]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=258</guid>
		<description><![CDATA[A very frustrating thing that happens at times to people who have facebook pages is that they want to comment as themselves instead of as their business. Perhaps they have an opinion that would have a different context if it came from the individual instead of the page. Maybe you have multiple admin&#8217;s and you [...]]]></description>
			<content:encoded><![CDATA[<p>A very frustrating thing that happens at times to people who have facebook pages is that they want to comment as themselves instead of as their business.  Perhaps they have an opinion that would have a different context if it came from the individual instead of the page.  Maybe you have multiple admin&#8217;s and you don&#8217;t want someone to read the post as coming from one of the other admin&#8217;s.  Regardless of the reasoning, I get asked about this a lot and thanks to some new updates from facebook there is now an easy straightforward way to get this done.<br />
<span id="more-258"></span><br />
First goto your page.  I&#8217;ll use my Computer Services of Durant, Inc. <a href="http://facebook.com/csdinc">Facebook Page</a> as an example here.</p>
<p>Once at your page click on the &#8220;Edit&#8221; button in the top right corner.  </p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.03.10-PM.png" rel="lightbox[258]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.03.10-PM.png" alt="" title="Edit Page Button" width="205" height="112" class="aligncenter size-full wp-image-260" /></a></p>
<p>On the page called &#8220;Your Settings&#8221; from the left navigation you will see a box that reads as follows:</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.10.38-PM.png" rel="lightbox[258]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.10.38-PM-300x132.png" alt="" title="Your Settings options on edit page." width="300" height="132" class="aligncenter size-medium wp-image-262" /></a></p>
<p>Uncheck the top checkbox on this page and click &#8220;Save Changes&#8221; to allow posting from your personal account on your page.  Now you can post as yourself by default, but what if we want to post as the page like we have done in the past?  The solution is simple, from the top drop down menu we select USE AS PAGE and select the page we want to use facebook as.  Now we can post as both our page and our individual selves on our page.  Simple switch back and forth for this feature by using the same drop down menu.  It&#8217;s that simple!</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.13.03-PM.png" rel="lightbox[258]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.13.03-PM-289x300.png" alt="" title="Drop Down Menu for Use as Page" width="289" height="300" class="aligncenter size-medium wp-image-261" /></a></p>
<p>Also note you can see what identity you are using currently by what shows up in your upper right corner of your facebook page.</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.17.13-PM.png" rel="lightbox[258]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-12-at-9.17.13-PM.png" alt="" title="Notice it says Computer Services of Durant, instead of Chris Pierce" width="340" height="106" class="aligncenter size-full wp-image-263" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2012/01/posting-as-your-user-on-your-facebook-page/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Securing an external (flash/usb) drive in mac OS X</title>
		<link>http://www.cpierce.org/2012/01/secure-drive-osx/</link>
		<comments>http://www.cpierce.org/2012/01/secure-drive-osx/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 02:55:13 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[OS X Lion]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[external Drive]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[Pen Drive]]></category>
		<category><![CDATA[thumb drive]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=233</guid>
		<description><![CDATA[Being the typical nerd that I am, I tend to have several different Thumb drives and some of them have confidential data on them. I try to never loose them but let&#8217;s face it, sometimes those little critters just get lost. The question is do you really want the data you keep on those drives [...]]]></description>
			<content:encoded><![CDATA[<p>Being the typical nerd that I am, I tend to have several different Thumb drives and some of them have confidential data on them.  I try to never loose them but let&#8217;s face it, sometimes those little critters just get lost.  The question is do you really want the data you keep on those drives out in the hands of the general public?  I have a few different drives.  A few I just use to throw junk on and transfer between computers, but I do have drives that I keep confidential data on that I use as a backup from my computer.  So I faced the issue of if that drive came up missing not freaking out that my data is in the hands of someone who might use it maliciously.<br />
<span id="more-233"></span><br />
I use Mac OS X Lion and so I first tried turning to the trusted File Vault, but alas, as you may have found if you&#8217;ve looked yourself, this is only available for the local hard drive OS X Lion is installed on.  So what do we do to secure a flash/thumb/usb/external/secondary/whatever drive?  </p>
<p>Step 1:  Open &#8220;Disk Utility&#8221; app and Locate your disk after inserting the disk into your computer.  *Note this can be used with any type of hard drive that uses standard partition tables.</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.29.59-PM.png" rel="lightbox[233]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.29.59-PM-300x259.png" alt="" title="Opening Disk Utility and finding your drive" width="300" height="259" class="aligncenter size-medium wp-image-234" /></a></p>
<p>As you can see here I have a standard 4 GB SanDisk Cruzer with a FAT partition on it.  </p>
<p>Before we go any further let&#8217;s specify a few things.  All data will be lost on this drive so please move your data to a local folder if you have important things on the drive already.  Secondly, this drive that we are going to secure will only work with Mac OS X computers after we encrypt it.  <strong>You will not be able to use it with Windows Computers anymore.</strong>  </p>
<p>Step 2: Click on the Label for the drive in &#8220;Disk Utility&#8221; app and find and click the Erase tab located toward the top. </p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.33.32-PM.png" rel="lightbox[233]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.33.32-PM-300x259.png" alt="" title="Erasing the Disk and the Contents" width="300" height="259" class="aligncenter size-medium wp-image-235" /></a></p>
<p>Step 3: You can see from the above we have a default set of MS-DOS (FAT) for format and UNTITLED as the Name. We will change this to Mac OS Extended (Journaled, Encrypted) and set the name to something more identifiable for us.  In my case I am going to use the Name: cpierce  From here we&#8217;ll click the Erase button.</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.36.24-PM.png" rel="lightbox[233]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.36.24-PM-300x259.png" alt="" title="Naming and Erasing" width="300" height="259" class="aligncenter size-medium wp-image-236" /></a></p>
<p>Step 4:  The box about creating the encrypted partition comes up and asks us to place our password into the box!  We need to use something secure so the more complex the better.  I also choose not to use a password hint (but to each his/her own).  Once more we click the erase button after entering in the data.</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.38.05-PM.png" rel="lightbox[233]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.38.05-PM-300x260.png" alt="" title="Entering our Password Credentials" width="300" height="260" class="aligncenter size-medium wp-image-237" /></a></p>
<p>You&#8217;ll see things about Switching the disk to Core Storage, Formatting Logical File System, etc. in the progress and your light should flash on your pen drive.  Next we&#8217;ll test our encrypted disk as it now shows up as ready:</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.40.31-PM.png" rel="lightbox[233]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.40.31-PM.png" alt="" title="Drive in Disk Utility" width="212" height="141" class="aligncenter size-full wp-image-238" /></a><br />
<a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.40.59-PM.png" rel="lightbox[233]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.40.59-PM.png" alt="" title="Drive active in system." width="83" height="102" class="aligncenter size-full wp-image-239" /></a></p>
<p>To test eject the drive (Command+E after clicking the drive and remove it from your computer.  Insert it again and you should see the following:</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.43.42-PM.png" rel="lightbox[233]"><img src="http://www.cpierce.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-01-at-8.43.42-PM-300x127.png" alt="" title="Testing our Encrypted Drive" width="300" height="127" class="aligncenter size-medium wp-image-240" /></a></p>
<p>You have a few options here.  If this is your computer you can remember this password in my keychain if you&#8217;d like.  If not, or if you insert this into another Mac, you&#8217;ll be asked for the password credentials each time the pen drive is inserted.  The drive will remember until the computer is rebooted, or the drive is removed (Unless you Remember the password in the keychain of course).  </p>
<p>Enjoy and I hope this helps someone.  *Note* If you forget your password, you can always repeat the steps, but this is going to cause the data contents to be wiped from the drive.  Now you can safely lose your external drive.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2012/01/secure-drive-osx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dell 3115cn Scanner Support for OSX Lion</title>
		<link>http://www.cpierce.org/2011/12/dell-3115cn-scanner-support-for-osx-lion/</link>
		<comments>http://www.cpierce.org/2011/12/dell-3115cn-scanner-support-for-osx-lion/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 03:28:03 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[Dell]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[OS X Lion]]></category>
		<category><![CDATA[3115cn]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[Network Scan]]></category>
		<category><![CDATA[Scanner]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=194</guid>
		<description><![CDATA[Several requests about getting the scanner working on their OSX Lion install with the Dell 3115cn have made me write this post. Some have had trouble getting it to work through SMB. So here goes instructions on how to get your scanner working with OSX Lion via FTP. Please note that this doesn&#8217;t actually work [...]]]></description>
			<content:encoded><![CDATA[<p>Several requests about getting the scanner working on their OSX Lion install with the Dell 3115cn have made me write this post.  Some have had trouble getting it to work through SMB. So here goes instructions on how to get your scanner working with OSX Lion via FTP.  Please note that this doesn&#8217;t actually work the way one might first expect.  When most people think of connecting a scanner to a computer they think of the computer doing the work by prompting the scanner to do the scanning.  This isn&#8217;t actually the case with the 3115cn.  It has the ability to do a scan server which is how we will set this up.<br />
<span id="more-194"></span><br />
<strong>Setting up the computer</strong><br />
Step 1:<br />
Open up System Prefs and find your computers IP Address under &#8220;Network&#8221;. <em>*I recommend you set this manually or set it with a sticky static in your router so that you don&#8217;t have to continue to go in and change the IP information inside the printer.*</em></p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2011/10/find_ip.png" rel="lightbox[194]"><img src="http://www.cpierce.org/wp-content/uploads/2011/10/find_ip-300x230.png" alt="" title="find_ip" width="300" height="230" class="aligncenter size-medium wp-image-195" /></a></p>
<p>Step 2:<br />
Open terminal and type the following command:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> launchctl load <span style="color: #660033;">-w</span> <span style="color: #000000; font-weight: bold;">/</span>System<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchDaemons<span style="color: #000000; font-weight: bold;">/</span>ftp.plist</div></div>
<p>Step 3:<br />
Close the terminal.  At this point create a shared folder inside your documents (or anywhere else you&#8217;d like) called &#8220;Scans&#8221; by opening finder and Right clicking and selecting New Folder and naming it scans:</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2011/10/NewFolder.png" rel="lightbox[194]"><img src="http://www.cpierce.org/wp-content/uploads/2011/10/NewFolder-300x185.png" alt="" title="NewFolder" width="300" height="185" class="aligncenter size-medium wp-image-202" /></a></p>
<p>When complete you should see the following:<br />
<a href="http://www.cpierce.org/wp-content/uploads/2011/10/Scans.png" rel="lightbox[194]"><img src="http://www.cpierce.org/wp-content/uploads/2011/10/Scans-300x150.png" alt="" title="Scans" width="300" height="150" class="aligncenter size-medium wp-image-203" /></a></p>
<p>You can test by going to terminal and typing ftp <IP> and see if you can login with your short name and password. Once you are logged in type cd Documents/Scans and see if it lets you browse to that directory.  You can even place a file in the folder and see if it is there using the &#8220;ls&#8221; command.</p>
<p><strong>Setting Up the Scanner</strong></p>
<p>Now that we have this working we&#8217;ll move on to configuring the Scanner of the Dell 3115cn.  I assume you know the IP Address of your scanner (as far as I know you&#8217;re scanner will not work via USB with the Mac so You&#8217;ll have to give it an ip on the network).  In my case I&#8217;ve setup the printer on 172.16.3.253 so that it&#8217;s on the same network as my machine.  Open up your browser and type the ip you set for the printer into the address bar.  You&#8217;ll see a Dell Printer Screen showing how much toner you have available.  <strong>At any time you are prompted with a password enter Admin with a blank password (unless you&#8217;ve set it to something else)</strong></p>
<p>Step 1:<br />
After opening the browser click on the Address Book Button (this is where you&#8217;ll be prompted for the password as stated above).  </p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2011/10/addressbook.png" rel="lightbox[194]"><img src="http://www.cpierce.org/wp-content/uploads/2011/10/addressbook-300x210.png" alt="" title="addressbook" width="300" height="210" class="aligncenter size-medium wp-image-206" /></a></p>
<p>Then navigate over to Server Address button and then click on the Create Button for 01 (if not in use &#8230; if it is move to 02 and so on).  Also be sure you are on Server Address and not on E-Mail address (although you can setup a simple SMTP Connection there to allow for emailing you scanned files, although this requires a little mail server knowledge and requires you to goto Print Server Settings -> Print Server Settings -> Email Alert (but that&#8217;s for another tutorial))</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2011/10/Server_address.png" rel="lightbox[194]"><img src="http://www.cpierce.org/wp-content/uploads/2011/10/Server_address-300x210.png" alt="" title="Server_address" width="300" height="210" class="aligncenter size-medium wp-image-207" /></a></p>
<p>You&#8217;ll see the following information:</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2011/10/what_you_are_seeing.png" rel="lightbox[194]"><img src="http://www.cpierce.org/wp-content/uploads/2011/10/what_you_are_seeing-300x221.png" alt="" title="what_you_are_seeing" width="300" height="221" class="aligncenter size-medium wp-image-208" /></a></p>
<p>The following Information should be entered:</p>
<p><strong>Name:</strong>  Any name you&#8217;d like to call this on the printers console screen.<br />
<strong>Server Type:</strong>  Tick the radial for FTP (The Default) since that&#8217;s how we configured it.<br />
<strong>Server Address:</strong> Enter your ip address for your computer here (in my case 172.16.3.3 from above)<br />
<strong>Server Port:</strong> 21 is the default FTP Port and should be entered here.<br />
<strong>Login Name:</strong> Your &#8220;Short&#8221; username for your OSX account (ex: cpierce). This was the account name you used when you setup your Mac.<br />
<strong>Login Password:</strong> Tick the Enable Password and enter your account password as entered above).<br />
<strong>Share Name:</strong> Leave Blank.<br />
<strong>Server Path:</strong> Enter &#8220;Documents/Scans&#8221; (without quotes).</p>
<p>Click apply New Settings button.  You&#8217;ll get an Engrish style message saying something about &#8220;updating the data and operate it again later&#8221;.  You will then see the following Screen.</p>
<p><a href="http://www.cpierce.org/wp-content/uploads/2011/10/ready_for_test.png" rel="lightbox[194]"><img src="http://www.cpierce.org/wp-content/uploads/2011/10/ready_for_test-300x210.png" alt="" title="ready_for_test" width="300" height="210" class="aligncenter size-medium wp-image-210" /></a></p>
<p>At this point goto your Scan option on the Console of the Printer and try to scan.  I hope this helps someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2011/12/dell-3115cn-scanner-support-for-osx-lion/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Dell 3115cn on OSx Lion (Fresh or Upgrade Install)</title>
		<link>http://www.cpierce.org/2011/09/dell-3115cn-on-osx-lion-fresh-install/</link>
		<comments>http://www.cpierce.org/2011/09/dell-3115cn-on-osx-lion-fresh-install/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 02:00:44 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[Dell]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[OS X Lion]]></category>
		<category><![CDATA[3115cn]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[printer]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=185</guid>
		<description><![CDATA[Many people have contacted me about a 3115cn printer driver for OS X Lion. Unfortunately Dell hasn&#8217;t released a driver for it, and the old installer packet required Rosetta even in Snow Leopard. On a developer box I installed the driver and then created an install for the 3115cn to work on OSX Lion. I [...]]]></description>
			<content:encoded><![CDATA[<p>Many people have contacted me about a 3115cn printer driver for OS X Lion.  Unfortunately Dell hasn&#8217;t released a driver for it, and the old installer packet required Rosetta even in Snow Leopard.  On a developer box I installed the driver and then created an install for the 3115cn to work on OSX Lion.  I hope I have everything included, but please let me know if you are having trouble with the installer package.  </p>
<p><a href="http://cpierce.org/downloads/lion_3115cn.pkg">Download Now!</a></p>
<p>**UPDATE &#8211; Youtube Video showing install of printer ***<br />
<iframe width="420" height="315" src="http://www.youtube.com/embed/G5edubdhfHQ" frameborder="0" allowfullscreen></iframe></p>
<p>**UPDATE &#8211; this is a new driver and now works with Lion Fresh install verses upgrade!  (should work with either now)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2011/09/dell-3115cn-on-osx-lion-fresh-install/feed/</wfw:commentRss>
		<slash:comments>64</slash:comments>
		</item>
		<item>
		<title>Getting Dell 5100cn to work with OS X Lion</title>
		<link>http://www.cpierce.org/2011/07/getting-dell-5100cn-to-work-with-os-x-lion/</link>
		<comments>http://www.cpierce.org/2011/07/getting-dell-5100cn-to-work-with-os-x-lion/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 14:14:27 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[Dell]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[OS X Lion]]></category>
		<category><![CDATA[5100cn]]></category>
		<category><![CDATA[lion]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=168</guid>
		<description><![CDATA[OS X 10.7 Lion is finally here and works quit well with few exceptions. I don&#8217;t like the natural scrolling but that might before another post. With the discontinued support of Rosetta my Dell 5100cn OSX driver fails to load. This was always an issue in Snow Leopard as well because I really hated installing [...]]]></description>
			<content:encoded><![CDATA[<p>OS X 10.7 Lion is finally here and works quit well with few exceptions.  I don&#8217;t like the natural scrolling but that might before another post.  With the discontinued support of Rosetta my Dell 5100cn OSX driver fails to load.  This was always an issue in Snow Leopard as well because I really hated installing Rosetta just for a printer to be installed.  Lion doesn&#8217;t even give that option and I hate thinking I&#8217;d have to get rid of a printer just because of a hardware release. </p>
<p>Update:<br />
Use the following packaged by Jeff (Thanks Jeff)<br />
<a href="/downloads/lion_5100cn.pkg">5100 Installer</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2011/07/getting-dell-5100cn-to-work-with-os-x-lion/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Getting Devonthink Pro Office 2 to work with Snow Leopard</title>
		<link>http://www.cpierce.org/2009/08/getting-devonthink-pro-office-2-to-work-with-snow-leopard/</link>
		<comments>http://www.cpierce.org/2009/08/getting-devonthink-pro-office-2-to-work-with-snow-leopard/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 21:58:53 +0000</pubDate>
		<dc:creator>cpierce</dc:creator>
				<category><![CDATA[OS X Leopard]]></category>
		<category><![CDATA[devonthink]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[snow leopard]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.cpierce.org/?p=152</guid>
		<description><![CDATA[I looked all over the internet and found several articles and posts about how Devonthink wasn&#8217;t supported with snow leopard. This is frustrating to me because for the most part it should work just fine. So I started investigating how to get it to work and I&#8217;ve got about 80% functionality now. Here is what [...]]]></description>
			<content:encoded><![CDATA[<p>I looked all over the internet and found several articles and posts about how Devonthink wasn&#8217;t supported with snow leopard.  This is frustrating to me because for the most part it should work just fine.  So I started investigating how to get it to work and I&#8217;ve got about 80% functionality now.  Here is what I did:</p>
<p>Install DevonThink Pro Office from download on the website.  After downloaded drag to the applications folder as normal.  Then open Devon Think.  Upon the first open it will ask you if you would like to install Devon Think&#8217;s Add-on&#8217;s and Extras.  Uncheck all of these and then devonthink will open.  Go ahead and enter your license in and test to make sure you can open a few different databases if you have them.  This was all working great so I decided to see if I could take it step further.  </p>
<p>For the most part, I use Devonthink to take scans of papers on my desk and place them into searchable groups.  Its a giant filing cabinet on the computer for me.  I like this process to be fast so I turn off the OCR part and then manually OCR and organize from the inbox at the end of the day.  But without Abbyy FineReader installed I have no way of doing the conversions to OCR nor are the options even there on the context menus.  So the next thing I tried is to install the PDF Services Scripts.  This worked without a hitch.   I then restarted DevonThink and installed ABBYY as the only option in the Install Add-ons (Under Help Install Add-ons).  I don&#8217;t really use the sorter and turn it off anyway so I didn&#8217;t need to install it, and I also don&#8217;t use the Mail built into OSX so I didn&#8217;t install that plug-in either.  After this I went back and installed Application Scripts and DevonThink Pro Scripts.  Both worked but the program does hang when trying to print a pdf directly to devonthink from Safari.  I can live with this.   </p>
<p>I haven&#8217;t tried scanning from my s1500m yet but this is next on my list.  I hope this helps someone get to your files at least for reference purposes.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cpierce.org/2009/08/getting-devonthink-pro-office-2-to-work-with-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

