2012-03-20 46 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

可能会在表中插入记录并使用更多功能的编程语言定期检查该表是否有新记录发送您的电子邮件。

相关问题