簡體   English   中英

sendmail 將第二個附件添加到 email

[英]sendmail add a second attachment to an email

有一個程序在 linux 級別發出以下命令

EXE1= "SH -c '/usr/lib/sendmail ":EMAIL<1,X>:' < "/thisdata/level1/VRE/&HOLD&/':PC.FILE:'.CSV':'"':"'"

是否可以在此指令中附加第二個 PC.File?

對此最正確的答案需要了解操作系統和您可能擁有的任何郵件服務器限制,但我一直在研究我們的舊例程,可能會提供一些見解。

我們曾經按照@RedCabbage 的建議使用 uuencode,但我們遇到了一些服務器拒絕消息的問題。 由於我們無法控制其他人的服務器,並且因為 uuencode 幾乎和泥土一樣古老,我們更新了我們的解決方案以改用 MIME。 見“不那么簡單的方法”

簡單的方法

在我們的 Linux 系統上,我們使用 mailx(在我們的例子中鏈接到 /usr/bin/mail)來添加多個附件。

echo "It's Wednessday, my dudes." |mail -s "foobar" -a foo.txt -a bar.txt dudes@wednessday.com

如果文件路徑正確(如果使用真實地址),這將導致 email 帶有兩個附件和消息正文。

不那么容易的方法

創建您自己的 MIME(多部分/混合)消息。 我們創建一個類似的記錄。

To: foo@foo.bar
From: bar@foo.bar
Subject: Not Rocket Surgery
MIME-Version: 1.0
Content-Type: multipart/mixed;
        boundary="SomelongBoundryMarkerYouMakeUpDoNotUseThis"

This is a multipart message in MIME format.

--SomelongBoundryMarkerYouMakeUpDoNotUseThis
Content-Type: text/plain

The body of that message go here. 

--SomelongBoundryMarkerYouMakeUpDoNotUseThis
Content-Type: application/pdf
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename="YourFileName.pdf"
Content-Base: http://www.IputOurDomainHereDunnoWhyDoNotUseThis.com


##BASE64 encoded string go here. 
--SomelongBoundryMarkerYouMakeUpDoNotUseThis

Rinse and Repeat with more files, newlines are important here.

對於編碼部分,假設您的文件位於 /foo/bar.pdf

ENCODED = ""
FILE.LOC = "/foo/bar.pdf"
TEST = ENCODE("Base64",1,FILE.LOC,2,ENCODED,1)
IF TEST EQ 0 THEN
   ;*Put the text in ENCODED where it says ##BASE64 encoded string go here
END

這更加乏味,因為您必須弄清楚所有的 mime 類型並確保所有內容的格式都正確。

祝你好運

這就是我們管理多個附件的方式。 例如,/home/ /home/jbloggs/attachment1.doc /attachment1.doc /home/jbloggs/attachment2.pdf

您將(就像您所做的那樣)必須構建命令並使用SH -c 'blah'執行它們(就像您已經完成的那樣。)

  1. 在(例如) /home/jbloggs/tempemail.txt中創建一個包含地址、主題和正文的文本文件
To: recipient.email@gmail.com subject: Your subject line here This is the main body text
  1. 循環瀏覽附件並將它們uuencode為遞增名稱(此處為ENCODEDn ):
 uuencode /home/jbloggs/attachment1.doc attachment1.doc > ENCODED1 uuencode /home/jbloggs/attachment2.pdf attachment2.pdf > ENCODED2
  1. 使用cat將所有文件合並為一個文件:
 cat /home/jbloggs/tempemail.txt ENCODED1 ENCODED2 > COMBOFILE
  1. 在組合上使用sendmail
 sendmail recipient.email@gmail.com < COMBOFILE

您可以循環瀏覽任意數量的ENCODEDn文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM