Linux下配置使用外部SMTP发邮件

[[email protected] /]# mail -s "Message"  [email protected] < /tmp/info.message

系统默认以“[email protected]主机名” 发送邮件,收到邮件直接被过虑成垃圾邮件了,那可不可以自定义邮箱发送邮件呢?

答案肯定可以的。

下载mailx包

mailx官方站点 http://heirloom.sourceforge.net/

下载最新版本mailx-12.4.tar.bz2 (271.5 kB)

http://sourceforge.net/projects/heirloom/files/latest/download?source=files

[[email protected] software]# tar -jxvf mailx-12.4.tar.bz2

[[email protected] software]# cd mailx-12.4

[[email protected] mailx-12.4]# make

openssl.c:108: 错误:expected declaration specifiers or ‘...’ before ‘STACK’

openssl.c: 在函数‘ssl_select_method’中:

openssl.c:215: 警告:赋值丢弃了指针目标类型的限定

openssl.c:217: 警告:赋值丢弃了指针目标类型的限定

openssl.c:219: 警告:赋值丢弃了指针目标类型的限定

openssl.c:223: 警告:赋值丢弃了指针目标类型的限定

openssl.c:226: 警告:赋值丢弃了指针目标类型的限定

openssl.c: 在函数‘ssl_check_host’中:

openssl.c:311: 错误:‘STACK’未声明(在此函数内第一次使用)

openssl.c:311: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其

openssl.c:311: 错误:所在的函数内也只报告一次。)

openssl.c:311: 错误:‘gens’未声明(在此函数内第一次使用)

openssl.c: 在文件层:

openssl.c:499: 错误:expected declaration specifiers or ‘...’ before ‘STACK’

openssl.c: 在函数‘smime_verify’中:

openssl.c:508: 错误:‘STACK’未声明(在此函数内第一次使用)

openssl.c:508: 错误:‘certs’未声明(在此函数内第一次使用)

openssl.c:508: 错误:‘gens’未声明(在此函数内第一次使用)

openssl.c:555: 错误:‘chain’未声明(在此函数内第一次使用)

openssl.c: 在函数‘cverify’中:

openssl.c:617: 错误:‘STACK’未声明(在此函数内第一次使用)

openssl.c:617: 错误:‘chain’未声明(在此函数内第一次使用)

openssl.c:649: 错误:提供给函数‘smime_verify’的实参太多

openssl.c: 在函数‘smime_encrypt’中:

openssl.c:690: 错误:‘STACK’未声明(在此函数内第一次使用)

openssl.c:690: 错误:‘certs’未声明(在此函数内第一次使用)

openssl.c: 在函数‘smime_certsave’中:

openssl.c:953: 错误:‘STACK’未声明(在此函数内第一次使用)

openssl.c:953: 错误:‘certs’未声明(在此函数内第一次使用)

openssl.c:955: 错误:‘chain’未声明(在此函数内第一次使用)

Makefile:80: recipe for target ‘openssl.o‘ failed

make: *** [openssl.o] Error 1

出现错误,看下面文档帮助

http://www.linuxfromscratch.org/blfs/view/stable/basicnet/mailx.html

原来差补丁,修复他

[[email protected] mailx-12.4]# wget http://www.linuxfromscratch.org/patches/blfs/7.6/mailx-12.4-openssl_1.0.0_build_fix-1.patch

[[email protected] mailx-12.4]# patch -Np1 -i mailx-12.4-openssl_1.0.0_build_fix-1.patch

patching file makeconfig

patching file openssl.c

#修复补丁成功

[[email protected] mailx-12.4]# make clean   #清除历史编译后文件

[[email protected] mailx-12.4]# make   #再次编绎

[[email protected] mailx-12.4]# make install UCBINSTALL=/usr/bin/install

/usr/bin/install -c mailx /usr/local/bin/mailx

strip /usr/local/bin/mailx

test -d /usr/local/share/man/man1 || mkdir -p /usr/local/share/man/man1

/usr/bin/install -c -m 644 mailx.1 /usr/local/share/man/man1/mailx.1

test -d /etc || mkdir -p /etc

test -f /etc/nail.rc || \

/usr/bin/install -c -m 644 nail.rc /etc/nail.rc

[[email protected] bin]# vim /etc/nail.rc   #编辑nail.rc配置外部SMTP信息

set [email protected] smtp=smtp.qiye.163.com

set [email protected]m smtp-auth-password=xxxxx smtp-auth=login

[[email protected] mailx-12.4]# service postfix reload  #重新加载postfix,可以不用重启的。

测试一下

[[email protected] mailx-12.4]# mail -s "Message"  [email protected] < /tmp/info.message

邮件发送成功,但为什么收到的还是[email protected]发送的邮件呢?

[[email protected] mailx-12.4]# whereis mailx

mailx: /bin/mailx /usr/bin/mailx /usr/local/bin/mailx /usr/share/man/man1/mailx.1 /usr/share/man/man1/mailx.1.gz /usr/share/man/man1p/mailx.1p.gz

哦,原因是新安装的包没有生效,执行还是原来的路径,替换他。

[[email protected] mailx-12.4]# cd /bin

[[email protected] bin]# rm -rf mailx

[[email protected] bin]# ln -s /usr/local/bin/mailx mailx

[[email protected] bin]# mailx -V

[[email protected] bin]# mail -s "Message"  [email protected] < /tmp/info.message

这下成功。

时间: 2024-10-17 23:06:08

Linux下配置使用外部SMTP发邮件的相关文章

Linux使用mailx通过外部smtp发邮件

利用mailx发邮件的功能可以做很多事,通常可以通过脚本让主机判断运行状态给指定邮箱发邮件. ##环境:虚拟机,CentOS7 通过yum安装: yum install -y mailx yum安装非常简单,其中要注意的是mailx版本最好大于7,redhat5系列之前自带的mailx发邮件需要通过sendmail程序来发送,所以需要更新版本 源码包安装:mailx-12.4 cd #回到家目录 tar xvjf mailx-12.4.tar.bz2 && cd mailx-12.4.ta

ubuntu和centos下使用外部smtp发邮件

centos上: 第一步:在qq邮箱设置-->账户中开启pop3/smtp服务,并设置独立密码 第二步:yum install -y mailx 第三步:vim /etc/mail.rc 在文件最后添加你的邮箱信息: set [email protected]set smtp=smtp.qq.comset smtp-auth-user=82312924set smtp-auth-password=Your passwordset smtp-auth-login 第四步:就能直接使用echo &quo

linux使用mail发送外部smtp邮件

linux使用mail发送外部smtp邮件 第一章 说明 参考资料: http://coolnull.com/2614.html linux自带的mail可以实现外部smtp发邮件.不需要本地配置postfix,sendmail邮件服务器,配置整套下来确实需要点时间. 环境: IP 主机名 操作系统 备注 192.168.120.130 db130 CentOS release 6.10 (Final)   第二章 实现 2.1 关闭本机的sendmail服务或者postfix service

CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决

其实错误原因并不是因为此错误,经检测,邮件服务器返回的真实错误是 501 mail from address must be same as authorization user .只因为同时返回了 503 Error: need MAIL command 和 503 Error: need RCPT command ,而ECSHOP只提示了最后一行错误. <br>220 smtp.qq.com Esmtp QQ Mail Server<br>250-smtp.qq.com250-

asp.net中模拟测试smtp发邮件

最近在编程人生里要测试一个会员邮件的功能,就写了下面的代码. 在asp.net 中,有时要测试发信SMTP,但如果在单元测试中,如果没方便好用的 smtp怎么办,其实还是有办法模拟的,下面讲解下: 在web.config 中设置 <system.net>   <mailSettings>      <smtp deliveryMethod="SpecifiedPickupDirectory">          <specifiedPickup

深度Linux下配置Eclipse的Android开发环境

前段时间开始折腾Linux,其它常用软件都轻松找到了功能相同或相近的替代软件,但到了android开发工具这块,网上好多朋友都推荐使用android studio,而俺是个eclipse的老顽固,在windows下就不习惯使用android studio,再加上手头还有一个在windows下用eclipse做了了一半的项目,只好再折腾下如何在linux下配置eclipse的android开发环境.以前在windows下配置eclipse的android开发环境一般是以下几个步骤:1.安装JDK,

Linux下配置tomcat + apr + native应对高并发

在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,这时并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来. 一.Tomcat运行模式介绍 Tomcat 有三种(bio,nio.apr) 运行模式,首先来简单介绍下: (1)BIO    BIO(blocking I/O

Linux下配置Tomcat服务器

Linux下配置Tomcat服务器和Windows下其实差不多,可以去官网下载安装包释放或者在线下载,只是当时下载的windows.zip文件,现在下载.tar.gz格式的即可,下面使用命令行的方式安装 还是在/usr/local下新建目录tomcat进入后用wget命令下载最新包,tomcat9.0现在已经出来了,但是为了和eclipse项目更好的兼容,建议下载tomcat8.0的最新包 下载好之后进行释放 tar -xzvf apache-tomcat-8.0.30.tar.gz 释放出来之

linux下配置Java和Go环境

重新安装了limux系统,由于长时间没有配置过java环境和Go环境,竟然不知道了都需要哪些东西了,因此就在博客里面总结一下,以免再次忘记,我都配置在/etc/profile文件里面,以前用Ubuntu时,配置在.bash_profile文件中,进不去图形界面,只好配置在/etc/profile文件中: 首先配置java环境: export JAVA_HOME=/usr/local/jdk1.7.0_65 export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/b