免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 17042 | 回复: 5
打印 上一主题 下一主题

{已经解决}shell调用mail命令发送html邮件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-03 18:24 |只看该作者 |倒序浏览
写个shell脚本
在linux系统中调用mail发送邮件,要求发送的是html格式的邮件,也就是发送html代码,客户接收后直接可以看到html网页,而现在客户看到是代码,在网上搜索了一下,需要指定headers .= 'Content-type: text/html为这个才行,也在网上找到了,用php脚本实现的方法,但觉得在shell脚本中也应该可以实现此方法,请知道的朋友指点一下,谢谢。

[ 本帖最后由 ghbspecial 于 2007-3-28 18:47 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-06-04 09:26 |只看该作者
用expect可以实现

论坛徽章:
0
3 [报告]
发表于 2006-06-05 14:44 |只看该作者
哪位能给出一个例子,谢谢!!
我只在网上找了php的,没有找shell的,我把php贴出来,请大家看一下,
<?php
// multiple recipients
$to  = 'aaa@163.com' . ', '; // note the comma
$to .= 'aaa@163.com';
// subject
$subject = 'Birthday Reminders for August';
// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';
// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>



//经过测试了的,可以发html邮件,不过事先要在配置文件里配好smtp

<?
$to="someone@sina.com";//a mail address
$subject="test mail";
$body="<table width='100%' border='1' cellspacing='0' cellpadding='0'>
  <tr>
    <td>11</td>
    <td>12</td>
  </tr>
  <tr>
    <td>21</td>
    <td>22</td>
  </tr>
</table>";
echo $subject;
echo $from;
$send=mail($to,$subject,stripslashes($body),"From: ".$from."\r\nContent-Type: text/html;charset=\"gb2312\"");
if($send)
   echo "send";
else
   echo "not send";
?>


因为上面的to= aaa@163.com的邮箱地址,要从一个文件里读取,其中还有主题,内容,所以很想用shell实现。

论坛徽章:
0
4 [报告]
发表于 2006-06-05 14:55 |只看该作者
用sendmail可以实现,邮件正文头加上
To: 123@123.com
From: abc@babc.com
Subject: hahaContent-type:text/html;charset="gb2312"

论坛徽章:
0
5 [报告]
发表于 2006-11-01 19:56 |只看该作者
原帖由 ghbspecial 于 2006-6-3 18:24 发表
写个shell脚本
在linux系统中调用mail发送邮件,要求发送的是html格式的邮件,也就是发送html代码,客户接收后直接可以看到html网页,而现在客户看到是代码,在网上搜索了一下,需要指定headers .= 'Content-typ ...


自己回自己。。

linux mail命令不能指邮件头所以使用formail命令
cat htmlmail |formail -I "From: aaa@aaa.com" -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:test"|/usr/sbin/sendmail -oi ghb@163.com


htmlmail为网页代码,ghb@163.com邮件接收者,搞定了。。

论坛徽章:
1
技术图书徽章
日期:2014-03-18 08:46:08
6 [报告]
发表于 2013-05-10 18:22 |只看该作者
回复 5# ghbspecial

需要安装fixmail命令吗?

这个不能用啊!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP