Sending email in FreeBSD with Gmail

When I moved my mail functionality (Qmail) from my FreeBSD-server to Google Apps I was left with no way to send email from my server (sendmail disabled and gmail removed) from shell. I have no longer the need to recieve email from my server, thanks to Google! However, I needed to send emails from my server to report server status and report software/hardware errors.

This is how I solved the problem on my FreeBSD 7.0 server. I have verified that it also works on 9.1

1. Freebsd has a guide for setting up send only with ssmtp. First you should install ssmtp.

cd /usr/ports/mail/ssmtp/ && make install replace clean

2. Then you need to configure ssmtp for Gmail. Create this file in /usr/local/etc/ssmtp/ssmtp.conf. Replace email and password with your Gmail-account settings.

root=youremail@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=youremail@gmail.com
AuthPass=yourpassword
UseSTARTTLS=YES
rewriteDomain=gmail.com

3. Test ssmtp. First you have to create a textfile with the message that you are going to send. Copy the text between the lines below.

Save the text to ”testmessage.txt”.
————————–
To: youremail@gmail.com
From: youremail@gmail.com
Subject: Testmessage

This is a test
————————–

Then run this command to send the testmessage.

ssmtp -v youremail@gmail.com < testmessage.txt

You should see the following output:

[<-] 220 mx.google.com ESMTP 14sm2982172ewy.10 [->] EHLO mysql
[<-] 250 PIPELINING [->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS [->] EHLO servername
[<-] 250 PIPELINING [->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6 [->] bWFyY3VzLm55YkBnbWFpbC5jb20=
[<-] 334 UGFzc3dvcmQ6 [<-] 235 2.7.0 Accepted [->] MAIL FROM:
[<-] 250 2.1.0 OK 14sm2982172ewy.10 [->] RCPT TO:
[<-] 250 2.1.5 OK 14sm2982172ewy.10 [->] DATA
[<-] 354 Go ahead 14sm2982172ewy.10 [->] Received: by Servername (sSMTP sendmail emulation); Tue, 09 Mar 2010 12:53:14 +0100
[->] From: "Username"
[->] Date: Tue, 09 Mar 2010 12:53:14 +0100
[->] To: youremail@gmail.com
[->] Subject: Testmessage
[->]
[->] This is a test
[->] .
[<-] 250 2.0.0 OK 1268135596 14sm2982172ewy.10 [->] QUIT
[<-] 221 2.0.0 closing connection 14sm2982172ewy.10 If everything seems ok you should now have a fresh email in your Gmail account. Check it out! If not, then you should probably check your ssmtp.conf file and verify that you can connect to smtp.google.com 4. Last, replace sendmail with ssmtp. This makes ssmtp the default mailer for your system. mv /usr/sbin/sendmail /usr/sbin/sendmail.org
ln -s /usr/local/sbin/ssmtp /usr/sbin/sendmail

5. Check that mail is working.

mail -v -s "TestSubject" youremail@gmail.com
Testing and
.

Output:
[<-] 220 mx.google.com ESMTP 16sm3004137ewy.7 [->] EHLO mysql
[<-] 250 PIPELINING [->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS [->] EHLO servername
[<-] 250 PIPELINING [->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6 [->] bWFyY3VzLm55YkBnbWFpbC5jb20=
[<-] 334 UGFzc3dvcmQ6 [<-] 235 2.7.0 Accepted [->] MAIL FROM:
[<-] 250 2.1.0 OK 16sm3004137ewy.7 [->] RCPT TO:
[<-] 250 2.1.5 OK 16sm3004137ewy.7 [->] DATA
[<-] 354 Go ahead 16sm3004137ewy.7 [->] Received: by mysql (sSMTP sendmail emulation); Tue, 09 Mar 2010 13:11:41 +0100
[->] From: ”Username”
[->] Date: Tue, 09 Mar 2010 13:11:41 +0100
[->] To: youremail@gmail.com
[->] Subject: TestSubject
[->]
[->] testing
[->] .
[<-] 250 2.0.0 OK 1268136703 16sm3004137ewy.7 [->] QUIT
[<-] 221 2.0.0 closing connection 16sm3004137ewy.7 6. Check the log file. cat /var/log/maillog

Output:
SMTP[755]: Creating SSL connection to host
sSMTP[755]: SSL connection using RC4-MD5
sSMTP[755]: Sent mail for username@servername(221 2.0.0 closing connection 14sm3068161ewy.2) uid=0 username=username outbytes=696
sSMTP[1234]: Creating SSL connection to host
sSMTP[1234]: SSL connection using RC4-MD5
sSMTP[1234]: Sent mail for username@servername (221 2.0.0 closing connection 16sm3004137ewy.7) uid=0 username=username outbytes=349

Summary
This worked for me straight out of the box. I didn’t need to make any changes to make it work. I hope it works for you as well!

google_protectAndRun is not defined

Tonight I got a very strange error that in Firefox error-log says ”google_protectAndRun is not defined”. The webpage that I am creating only shows a blank page directly after the page is loaded (when my jquery ”ready”-stuff runs). The error occurs when I am wrapping a ”div” around the adsense-code with jQuery like this:

$("#divID").wrap("<div class="someclass"></div>");

Please help! I cant find any solution to this error.

Hemsida till Ludvig Nordström sällskapet

Jag har nyligen hjälp en kompis med att bygga en hemsida åt Ludvig Nordström sällskapet. Så kika på den!

ludvig1

Eftersom jag är ett stort fan av att använda WordPress (php) som CMS till enklare webbsidor åt föreningar/mindre företag så blev det givetvis den tekniska lösningen. Som vanligt blev det lite hackande i form av att mixtra med teman samt plugins/tillägg men det var ganska enkla fixar som behövde göras. Samtidigt var det kul att se alla bra nyheter i WordPress 2.8. Det är riktigt imponerande att följa WP’s utveckling.

Tutorial – Sending email from WordPress using Google Gmail

This tutorial covers how you easily can modify your WordPress installation to send email with a Google Gmail account instead of sending through your webserver. Only ONE file needs to be modified. You also need to have a working WP-installation and a Gmail-account.

Step 1
Open the file ”wp-includes/class-phpmailer.php” (which is the class that sends email in WordPress) in your favourite text-editor.

Step 2
Find and modify the following properties.

var $Mailer = ’smtp’;
var $Host = ’smtp.gmail.com’;
var $Port = 465;
var $SMTPAuth = true;
var $Username = ’your_username@gmail.com’;
var $Password = ’your_gmail_password’;

Step 3
Find the the method ”IsMail” (in the same file) and comment out one row of code like this:

function IsMail() {
//$this->Mailer = ’mail’;
}

All steps complete!

This should work with all WordPress versions that uses a version of the phpMailer-class that is Gmail compatible.

Tested in WordPress v 2.7

LOOK HERE
I don’t use this method any longer because I don’t want to touch the core-files of wordpress. It is a bad habit to do so, because they get overwritten each time you update wordpress. There is a plugin called XPertMailer that can send email through gmail. Use that one instead!

Flytt av mailhanteringen från Qmail till Google Apps

Eftersom jag driftat mina egna webbservrar (FreeBSD) i ett flertal år så har det visat sig vilka moment som är mer krångliga och tidskrävande än andra. I huvudsak så kör jag webb (php, apache och mysql) och mail (Qmail) på mina maskiner för dels mina domäner samt för kompisars domäner. Det mest krångliga & tidskrävande har under denna tid varit att hantera mailen. För det första så är det inte helt lätt att konfigurera Qmail trots att det finns en relativt enkel tutorial på QmailRocks. Om man ska ha alla finesser som imap, pop, spamfilter, virusskydd och vpopmail så får man en diger lista med program som ska konfas och skötas. Detta har inte fungerat helt okey för ganska mycket spam kom fortfarande fram och min internetoperatör är inte helt förjust i att jag ibland skickar ut tusentals mail.

För att slippa mailhanteringen så beslöt jag mig för att testa Google Apps Standard Edition som är en gratis tjänst från Google där du kan koppla ett domännamn till ett flertal av deras tjänster. Den tjänst jag ville använda mig av var Gmail på så sätt att all min mail för alla mina domäner körs via deras mailtjänst.

Jag hade följande krav på tjänsten:
1) Webbmail för enkel hantering
2) Imap och pop för ytterligare valfrihet
3) smtp funktionalitet så att mina webbsidor (främst) kan skicka mail
4) Gmails spamfilter

På Googles sidor så kunde jag läsa mig till att dom hade stöd för punkterna 1, 2 och 4. Den återstående punkten, som jag var tvungen att testa, var smtp-funktionaliteten. Detta var den viktigaste punkten eftersom min största sajt HockeySnack kan behöva skicka iväg flera tusen mail vid vissa tillfällen. Sajten kräver ett väl fungerande mailsystem!

Tydligen så får varje användare max skicka 500 mail per dag då man använder gratisversionen. Skickar man fler mail så blir man avstängd i 24 timmar. Men detta kommer man runt genom att skapa upp fler användare. Så om du har 10 användare så kan du teoretiskt skicka 10 * 500 = 5000 mail/dag. För att klara denna begränsning så var jag tvungen att skapa logik i koden på min webbsajt som sköter mailhanteringen så att inte gränsvärdet överskrids på daglig basis. Den lösning som jag skapade har hittills fungerat förträffligt. Då php-mailprogrammet känner att det närmar sig begränsningen så väntar den med att skicka mail tills dess att det är grönt ljus.

Att flytta mail fysiskt från qmail till google apps utfördes genom att mappa upp båda servrarna via imap i Microsoft Outlook (Thunderbird borde gå lika bra) för att sedan bara flytta över mappar och brev med drag and drop. Hur man flyttar över en hel bunt med konton vet jag inte hur man gör utan då får man nog kontakta Google och köra betalvarianten av Google Apps.

Slutsats
Nu har jag kört mailen via Google Apps i några veckor och jag har verkligen inget att klaga på. Jag har haft noll nertid på tjänsten och inte fått ett enda spammail under hela tiden. Jag har gjort ett större utskick från min webbsajt till 5000 användare utan problem. Mina kompisar har flyttat all sin mail till samma tjänst med samma fina resultat så nu kan jag äntligen stänga ner min privata mailserver. Min rekommendation till folk med egna problematiska webbservrar är att det inte är några problem att köra Google Apps. Den enda invändningen man kan ha är att Google nu vet innehållet i mina mail, men för min del är inte det något problem. Att det hela är gratis gör ju inte heller saken sämre.

OBS För att kunna använda Google Apps så är det lättast om du äger din domän samt att du kan ändra DNS-inställningarna för denna. Du måste kunna ändra din MX-record till att peka mot en av googles servrar.

Logica i Sundsvall

Som alla kan se så och kanske vet så jobbar jag på IT-konsultföretaget Logica i Sundsvall som systemutvecklare. Det har även Google uppmärksammat för om du söker information om Logica i Sundsvall så kommer du (ofta) till min webbsida. Det är väl egentligen inte så anmärkningsvärt eftersom vårt kontor inte har en egen webbplats utan huserar på företagets webbplats logica.se. Att hamna först i resultaten för dessa keywords var verkligen inget som jag hade tänkt på.

Mina placeringar på google är följande:

Första plats för Logica Sundsvall på google.se
Tredje plats för Logica Sundsvall på google.com

Då jag sökte på ”Logica Sundsvall” så fick jag även upp en sida där någon av mina arbetskamrater (?) recenserat vår arbetsplats på den amerikanska jobbsajten glassdoor.com. Någon som kallar sig Senior Technical Architect har skrivit följande recension.

Om man fortsätter och klickar sig runt på glassdoor.com så kan man snappa upp ganska mycket information om hur det är att jobba (och vad man tjänar) på olika IT-företag runt om i världen.

Att man tjänar 98 000 dollar som systemutvecklare på Google känns uppmuntrande. Vilka fantasilöner alltså!

Att det är mycket politik om man jobbar hos Cisco. Jahaja, kan tänkas…

Att man är en slav i ett företag utan kommunikation om man jobbar på Steria. Hmm, jaså…

Att det är mycket övertid som ung medarbetare på Accenture. Det har jag faktiskt hört tidigare. Stämmer det eller är det en IT-myt?

Att det är bra medarbetare på Sogeti men att det är dålig ledning. Jadu, jag har ingen aning om det stämmer…

Det mesta som står på den här sajten och liknande sajter får man ta med en nypa salt, men det kan nog vara en hel del som stämmer också. I den nya världen så får företagen räkna med att bli recenserade och att potentiella nya medarbetare läser och tar till sig information på de här sajterna.

PS (2011-01-01). Jag jobbar inte längre på Logica i Sundsvall utan på Capgemini, men det är kul att mitt gamla inlägg fortfarande ligger högt i sökresultaten på sökningen ”logica sundsvall”. :)

Marcus Nyberg på google

Ett av målen med hemsidan var att folk skulle hitta mig på nätet genom att söka på Marcus Nyberg. Om man söker på Marcus Nyberg på svenska google så kommer min hemsida på tredje plats i sökresultatet. Men tredje plats är väl inget för mig. Målet är givetvis att komma överst i sökresultatet och komma före racingkillen och hockeyspelaren. Tiden får utvisa om jag lyckas.