2016-06-09 2 views
-2

Я пытаюсь отправить почту через UNIX с телом HTML и файлом xlsx в качестве вложения, но я не могу прикрепить файл с почтой, может кто-нибудь поделиться некоторыми образец кода? Это то, что я пытался, я должен отправить файл XLSX в качестве приложения для простоты я пытаюсь его CSV, Unix вар файл является CSV-файл, который содержит данные, как аЬс хуг @ gmail.comВложение HTML и вложение XLSX по почте через UNIX с использованием команды SENDMAIL

echo $file 
while read LINE 
do 
echo $LINE; 
fund_provider_code=`echo $LINE | awk -F',' '{print$1}'` 
len=`echo $fund_provider_code | awk '{print length}'` 
length=`expr $len + 2` 
email_list=`echo $LINE | cut -c $length-` 
echo fund_code=$fund_provider_code 
email=$email_list 
(BOUNDARY='=== This is the boundary between parts of the message. ===' 
ATTACHMENT="$attachment_file" 
SUBJECT="$subject_text" 
VERSION=1.0 
print - 'To:' ${email_list} 
print - 'Subject:' ${SUBJECT} 
print - 'MIME-Version: 1.0' 
print - 'Content-Type: MULTIPART/MIXED; ' 
print - 'Content-Type: TEXT/HTML; charset=US-ASCII' 
print - 
awk -v message1="${msg1}" ' BEGIN { 
print "<html><body>" 
print "<style>" 
print "p.MsoNormal, li.MsoNormal, div.MsoNormal \{mso-style-parent:\"\"; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt;font-family:\"Arial\"; mso-fareast-font-family:\"MSMincho\";\}" 
print "</style>" 
print "<div class=Section1>" 
print "<p class=MsoNormal style=\"mso-layout-grid-align:none;text-autospace:none\"><span style=\"font-size:12.0pt;font-family:'Arial';mso-bidi-font-family:'Arial'; color:Black\">Dear All,<o:p></o:p></span></p>" 
print "</div></body></html>" 
}' email_body.txt; 
print - 
print - "--${BOUNDARY}--" 
print - 'ATTACH="/projects/dit/edw/EDW_OUTBOUND_FEEDS/bin/email.csv"' 
print - 'Content-Type: TEXT/HTML, multipart/mixed, text/html, application/octet-stream ; name=email.csv' 
print - "Content-Transfer-Encoding: base64" 
print - 'Content-Disposition: attachment; filename=abc.csv' 
uuencode "/projects/dit/edw/EDW_OUTBOUND_FEEDS/bin/email.csv" email.csv 
print - 
print - "--${BOUNDARY}--" 
) | sendmail ${email_list} 
done < "$file" 
+1

Stack Overflow не является службой записи кода. Пожалуйста, сделайте попытку сделать это самостоятельно, а затем отправьте сообщение, если вы не можете этого сделать. – thesecretmaster

+0

@thesecretmaster - сделано, отправил код. –

+0

Спасибо! Я удалил свой downvote. – thesecretmaster

ответ

0

Похоже, что у вас есть несоответствие в имени файла, который вы хотите отправить. Ниже предположим, что вы хотите отправить файл локально определяется как:

/projects/dit/edw/EDW_OUTBOUND_FEEDS/bin/email.csv 

--- однако, вы не определили его правильно, поэтому я установил назначение так:

ATTACH="/projects/dit/edw/EDW_OUTBOUND_FEEDS/bin/email.csv" 

Или же вы хотите использовать ПРИЛОЖЕНИЕ? Я думаю, вы должны очистить этот код.

  • я не нашел применение этой линии:
 
    ATTACHMENT="$attachment_file" 
  • вар subject_text не определен, или это в части сценария мы не видим в вашем OP?
  • var attachment_file не определен.

Я думаю, вы должны использовать файл, который вы хотите отправить в вар: $ATTACH

echo $file 
while read LINE 
do 
echo $LINE; 
fund_provider_code=`echo $LINE | awk -F',' '{print$1}'` 
len=`echo $fund_provider_code | awk '{print length}'` 
length=`expr $len + 2` 
email_list=`echo $LINE | cut -c $length-` 
echo fund_code=$fund_provider_code 
email=$email_list 
(BOUNDARY='=== This is the boundary between parts of the message. ===' 
ATTACHMENT="$attachment_file" 
ATTACH="/projects/dit/edw/EDW_OUTBOUND_FEEDS/bin/email.csv" 
SUBJECT="$subject_text" 
VERSION=1.0 
print - 'To:' ${email_list} 
print - 'Subject:' ${SUBJECT} 
print - 'MIME-Version: 1.0' 
print - 'Content-Type: MULTIPART/MIXED; ' 
print - 'Content-Type: TEXT/HTML; charset=US-ASCII' 
print - 
awk -v message1="${msg1}" ' BEGIN { 
print "<html><body>" 
print "<style>" 
print "p.MsoNormal, li.MsoNormal, div.MsoNormal \{mso-style-parent:\"\"; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt;font-family:\"Arial\"; mso-fareast-font-family:\"MSMincho\";\}" 
print "</style>" 
print "<div class=Section1>" 
print "<p class=MsoNormal style=\"mso-layout-grid-align:none;text-autospace:none\"><span style=\"font-size:12.0pt;font-family:'Arial';mso-bidi-font-family:'Arial'; color:Black\">Dear All,<o:p></o:p></span></p>" 
print "</div></body></html>" 
}' email_body.txt; 
print - 
print - "--${BOUNDARY}--" 
print - 'ATTACH="${ATTACH}"' 
print - 'Content-Type: TEXT/HTML, multipart/mixed, text/html, application/octet-stream ; name="'$(basename ${ATTACH})'"' 
print - "Content-Transfer-Encoding: base64" 
print - 'Content-Disposition: attachment; filename="'$(basename ${ATTACH})'"' 
uuencode $ATTACH $(basename ${ATTACH}) 
print - "--${BOUNDARY}--" 
) | sendmail ${email_list} 
done < "$file" 

От examples я видел, если вы используете GNU uuencode, вам, возможно, потребуется заменить строку

uuencode $ATTACH $(basename $ATTACH) 

по

uuencode --base64 $ATTACH $(basename $ATTACH) 
Смежные вопросы