Mail Merging with letter.cls and envlab.sty
\documentclass{letter} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[a4paper]{geometry} \usepackage[british]{babel} \usepackage{datatool} \usepackage{graphicx} \usepackage[nocapaddress]{envlab} \DTLloaddb{people}{people.csv} \DTLloaddb{countries}{country-codes.csv} \SetBigLabel{101mm}{139mm}{9mm}{3mm}{2mm}{2}{2} \renewcommand{\PrintBigLabel}[2]{% \begin{minipage}[t][\LabelHeight]{\LabelWidth}% \vfill \hspace*{1em}% \rotatebox[origin=l]{90}{\PrintReturnAddress{#1}}\hfill \rule{0.1pt}{\ToAddressWidth}\space \rotatebox[origin=l]{90}{\PrintAddress{#2}}% \hspace*{1em}% \vfill \end{minipage}% } \makelabels \name{Mr Big Head} \signature{Big Head} \location{Secret Lab of Experimental Stuff} \address{University of Somewhere\\Some City\\AB3 4YZ} \telephone{0123456789} \begin{document} \DTLforeach*{people}% data {% assignments \Id=id,% \Surname=surname,% \Forenames=forenames,% \Title=title,% \AddressI=address1,% \AddressII=address2,% \Town=town,% \County=county,% \Postcode=postcode,% \CountryCode=country% } {% \xDTLassignfirstmatch{countries}{code}{\CountryCode}{\CountryName=name} \begin{letter}{\DTLifnullorempty{\Title}{}{\Title\ }% \Forenames\ \Surname\\\AddressI\\ \DTLifnullorempty{\AddressII}{}{\AddressII\\}\Town\\ \DTLifnullorempty{\County}{}{\County\\}\Postcode\\\CountryName} \opening{Dear \DTLifnullorempty{\Title}{\Forenames}{\Title} \Surname} \thispagestyle{firstpage} This is an imaginary letter. This is the second paragraph of the letter. \closing{Yours sincerely} \ps PS: this is a postscript. \encl{Photocopy of something interesting\\ Photocopy of something rather dull} \cc{Prof Important Person\\Dr Bor Ing} \end{letter} } \end{document}
Download mail-merging-letter-labels.tex or mail-merging-letter-labels.pdf.