2012-03-20 48 views
1

有沒有可能的方式使用mysql發送帶附件的電子郵件?目前我可以使用mysql發送電子郵件,但沒有附件。 我需要包含一個來自硬盤的docx附件。如何使用mysql查詢發送帶有附件的電子郵件

我創建一個eml文件並將其發送到IIS(Inetpub),以便它可以獲取電子郵件。這是電子郵件通知的工作代碼:

SET @sqlString = CONCAT("SELECT 'To:[email protected]', ", 
     "'From: [email protected]', ", 
     "'Subject: test', ", 
     "'\r\n'", 
     "'test'", 
     "INTO OUTFILE 'C:/Inetpub/mailroot/Pickup/mail_", CAST(RAND() * (100000 - 1) + 1 AS CHAR(64)), ".eml' FIELDS TERMINATED BY '\r\n' ESCAPED BY ''"); 

    PREPARE stmt FROM @sqlString; 
    EXECUTE stmt; 
    DEALLOCATE PREPARE stmt; 

現在我需要一個附件。這是我的努力嘗試...

SET @sqlString = CONCAT("SELECT 'To:[email protected]', ", 
     "'From: [email protected]', ", 
     "'Subject: test', ", 
     "'Content-Type: application/octet-stream; name=\"C:/text.docx\"',", 
    "'Content-Transfer-Encoding: base64',", 
    "'Content-Disposition: attachment; filename=\"C:/text.docx\"',", 
     "'\r\n'", 
     "'test'", 
     "INTO OUTFILE 'C:/Inetpub/mailroot/Pickup/mail_", CAST(RAND() * (100000 - 1) + 1 AS CHAR(64)), ".eml' FIELDS TERMINATED BY '\r\n' ESCAPED BY ''"); 

    PREPARE stmt FROM @sqlString; 
    EXECUTE stmt; 
    DEALLOCATE PREPARE stmt; 

但它只創建一個docx文件,並沒有獲取正確的文件。它也刪除了正文文本。

有沒有可能的方法來附加文件。非常感謝您的幫助

+2

上帝啊,不要這樣做。 MySQL沒有base64編碼功能。你不想自己寫一個。而是在客戶端應用程序中執行此操作。手工生成模擬電子郵件也是一個嚴重的痛苦。 – 2012-03-20 02:54:25

+0

@Marc B感謝您的回覆和關注。但我需要安排電子郵件通知。 – sarah 2012-03-20 02:57:40

+0

正確的編程語言可以構建/發送電子郵件遠比通過SQL查詢執行電子郵件要容易得多,並且也可以安排。再次,不要在數據庫中。 – 2012-03-20 14:26:01

回答

0

可能會在表中插入記錄並使用更多功能的編程語言定期檢查該表是否有新記錄發送您的電子郵件。

相關問題