使用msmtp发送邮件的例子

本文介绍了一种利用msmtp客户端通过免费邮箱服务发送邮件的方法。文中提供了一个bash脚本,该脚本支持多种免费邮箱服务,如Gmail、163、Hotmail等,并详细说明了如何配置及使用这些服务进行邮件发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在搞一个东西需要做邮件通知,又不想在服务器上多搞个邮件服务.
怎么办呢?
能否用各种免费邮箱来发邮件呢?
答案当然是可以啦!
用什么客户端呢?
我想到了msmtp,msmtp配置好后发邮件非常方便.
当然啦!通过msmtp使用免费邮箱发邮件有风险.
发多了,发频繁了,很可能邮箱就被封.
想当年哥读书时,觉得msmtp很神奇,
于是乎用msmtp在我的两个163邮箱之间,
连续发了几十封邮件.结果两个邮箱全被网易封了,
说我恶意发邮件.哥,对灯发誓哥绝无恶意!
好了,不说废话了!看脚本吧!
#!/bin/bash

#       filename: msmtp_send
#       
#       Copyright 2010 wkt <weikting@gmail.com>
#       

#
#注意:
#  1 请不要使用这个脚本乱来
#  2 这个脚本有风险,要你的邮箱因为使用这个脚本中的方法发邮件而被被封杀,请不要怪我!

#使用方法:
#   msmtp_send from@from_domain.com mailto@mailto_domain.com
#
#from@from_domain.com可以
#支持是gmail,163,hotmail,网易免费企业邮箱,QQ邮箱
#

rc=$(mktemp /tmp/.mailrc.XXXXXXXX)
#rc=/tmp/.mailrc.XXXXXXXX

from='user@my_domain.com'
to='mailto@mailto_domain.com'
smtp_server=smtp.ym.163.com

test -n "$1" && from=$1
test -n "$2" && to=$2
test -n "$3" && smtp_server=$3

get_user()
{
    dn=$(get_domain $1)
    if test "$dn = hotmail.com";then
        echo $1
    else
        echo $1 |sed 's|@.*||g'
    fi
}

get_domain()
{
    echo $1 |sed 's|.*@||g'
}

get_smtp_server()
{
    local dn
    dn=$(get_domain $1)
    if test "$dn" = hotmail.com;then
        echo smtp.live.com
    else
        echo smtp.$dn
    fi
}

cat <<___eof_ > ${rc}
defaults
#keepbcc on

###QQ邮箱不支持tls,使用QQ邮箱需要关闭tls_starttls
#tls_starttls off

tls on

###网易免费企业邮箱的ssl证书通不过验证,所以使用 网易免费企业邮箱 时,只能关闭tls证书验证
#tls_certcheck off

syslog on
auth on

#使用 网易免费企业邮箱 时,需要注释掉tls_trust_file
tls_trust_file /usr/lib/ssl/certs/ca-certificates.crt

account normal
host $(get_smtp_server $from)
from $from
user $(get_user $from)

##可以在这里填写邮箱密码,当然这样不是很安全
#password my_password

account qiye
host $smtp_server
from $from
user $from
#password my_password
tls_certcheck off
tls_trust_file

#设置默认msmtp使用的账号信息
#使用 网易免费企业邮箱,需要把normal改为qiye
account default : normal

___eof_

#更改配置文件权限,权限不对mstp拒绝干活
chmod og-rwx $rc

send()
{
cat <<__mail_ |msmtp -C $rc $to
TO:$to
FROM:$from
SUBJECT:test msmtp

This is a Test for msmtp!

$(date '+%Y/%m/%d %T.%N')

__mail_
}

send

rm -f ${rc}


转载于:https://my.oschina.net/u/586849/blog/69973

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值