我剛剛在我的測試環境中獲得了PHP的郵件功能。PHP:將附件添加到「即時」電子郵件?
我有一個輸出一些字符串的PHP應用程序。將這些字符串轉換爲電子郵件中的附件(*.TXT
-files)將非常好,而不必先將它們存儲在磁盤上,並且必須將其讀回。 這將成爲可能的PHP?
我剛剛在我的測試環境中獲得了PHP的郵件功能。PHP:將附件添加到「即時」電子郵件?
我有一個輸出一些字符串的PHP應用程序。將這些字符串轉換爲電子郵件中的附件(*.TXT
-files)將非常好,而不必先將它們存儲在磁盤上,並且必須將其讀回。 這將成爲可能的PHP?
是的,這是可能的。你只需要讓你的電子郵件消息的multipart message語法如下:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=random-boundary
This is the optional preamble of a multipart/mixed message.
--random-boundary
Content-Type: text/plain
This is the main message body.
--random-boundary
Content-Type: text/plain
Content-Disposition: attachment; filename=file.txt
This is the content of the attached file.
--random-boundary--
This is the optional epilogue of a multipart/mixed message.
每個部分都那麼像任何其他信息來描述。但是你應該使用一個爲你做這個的庫。
現在,如果您使用的是PHP’s mail
function,則前兩行應爲標題,其餘爲該郵件的內容。邊界應該是一個隨機邊界,以便在該部分的內容中存在該字符串前面的字符串的可能性非常小。
是的,您可以使用例如PEAR's Mail_Mine它的類。
bool addAttachment (string $file , string $c_type = 'application/octet-stream' , string $name = '' , boolean $isfile = true , string $encoding = 'base64')
是您想要使用的方法,$file
包含您的字符串,而$isfile
是false
。
,你可以使用的Zend_Mail類的容易得多代碼 的文件名會"smapleFilename"
及其createAttachment
功能 最後一個參數,但不foget設置你的transport
是 樣品之前:
$mail = new Zend_Mail();
$mail->setBodyText("body")
->createAttachment("your wanted text " , Zend_Mime::TYPE_TEXT,
Zend_Mime::DISPOSITION_ATTACHMENT , Zend_Mime::ENCODING_BASE64, "smapleFilename.txt");
$mail->setFrom('[email protected]', 'Server');
$mail->addTo('[email protected]');
$mail->setSubject("subject");
$mail->send();
在Zend框架項目中你會這樣做:
resources.mail.transport.type = smtp
resources.mail.transport.host = "mail.111111.com"
resources.mail.transport.auth = login
resources.mail.transport.username = [email protected]
resources.mail.transport.password = test
;resources.mail.transport.ssl = tls
resources.mail.transport.port = 2525
resources.mail.transport.register = true ; True by default
感謝您的回答。花了一些時間讓它運行,但它的工作!謝謝 – Industrial 2010-11-25 19:38:20