Trabalhando com o arquivo CSV para enviar e-mail

0

Eu tenho um arquivo CSV em um host linux e ele tem duas colunas separadas por vírgulas: A primeira coluna é o endereço de e-mail e a segunda coluna é o endereço de e-mail corporativo. A segunda coluna (corp email) pode ser um OU muitos emails corporativos.

root@esm-pauth1 # cat owners_and_corps.csv'

[email protected],osp
[email protected],fincenter
[email protected],Cateringlc,RamHealth,fordhamfood
[email protected],Healthstudy,memoryhealth,psychidentity,sleepstudy,yddc

Como faço para usar awk , sed ou qualquer comando desse tipo para enviar um email ao usuário para os usuários na primeira coluna e notificá-los do email corporativo na segunda coluna (ou possivelmente na segunda à nona)? coluna) dependendo de como e-mails corporativos do homem o proprietário tem. Lembre-se de que os e-mails corporativos no arquivo NÃO têm @fordham.edu no final dele

ou seja, envie um e-mail para [email protected] , notificando-a sobre o e-mail corporativo [email protected]

ou seja, enviar e-mail para [email protected] , notificando-o de e-mails corporativos [email protected] , [email protected] , [email protected]

    
por Patrick Guerrier 17.02.2017 / 20:30

1 resposta

0

Você está querendo algo nos moldes de

cat owners_corps.csv | awk -F, '{print "To: "$1;$1=""; print "Corp mails: "$0}'

Você mencionou que os endereços corporativos não terão o endereço @ fordham.edu, mas o endereço acima, no entanto, não tenho certeza se isso é apenas um erro de formatação. Você poderia usar algo como o seguinte,

#!/bin/bash
while read line; do
    #Get the email from the first column
    email_to=$(echo $line|cut -d, -f1)
    #Get the list of corp emails from the second column until end,   strip white space,  add @fordham.edu to the last entry (Won't have comma) then add @fordham.edu to all others 
    corp_emails=$(echo $line |cut -d, -f2-|sed 's/\s//g; s/$/@fordham.edu/g; s/,/@fordham.edu,/g')
    echo "To: $email_to :: list of corp addresses: $corp_emails"
    #echo "List of corp addresses $corp_emails" | mail -s "Corp Address List" $email_to
done < owners_corps.csv

Para fazer o loop do arquivo e adicionar @ fordham.edu a todos os endereços corp. Ele irá ecoar o que seria enviado por padrão, mas eu incluí um exemplo de pipe de e-mail comentado também se você quiser direcionar diretamente para o e-mail.

    
por 18.02.2017 / 06:19

Tags