导航:首页 > 编程语言 > linuxphp邮件服务器

linuxphp邮件服务器

发布时间:2023-02-17 21:55:05

‘壹’ linux 下无法使用mail命令发送邮件

根据你描述的情况,使用mail发邮件是通过本机的postfix来发送的。如果本机的的postfix配置中启用了relay,则会将发信请求转发到relay机器进行投递。如果此时通过mail发不出邮件,则问题有可能出现在relay的服务器上。
你说的通过php是可以发邮件的,这个和使用mail是两回事。如果php程序使用的是自己的发信程序,那与本机的postfix可能就没有什么关系。这其中具体的配置还要看程序是怎么设计的。

‘贰’ 我的php系统在本地可以发邮件,可是在服务器发不了了。

stmp
设置好没?

可能linux不兼容吧,我没试过在linux上发邮件7、XP的发过

‘叁’ 如何配置发送邮件

从后台进去 系统设置->邮件服务器设置。
一、邮件发送方式
ECShop 2.5支持如下二种邮件发送方式:
1、采用服务器内置的 Mail 服务(推荐此方式),见图 1 所示:
介绍:这种方式是使用 PHP 的函数发送邮件,需要服务器上安装 mail 系统。一般的虚拟主机都内置邮件系统。因此强烈推荐使用这种方式。
2、采用其他的 SMTP 服务(支持 SMTP 验证),见图 2 所示:
介绍:这种方式适用于 Windows 或者 Linux 类服务器使用(适合于虚拟主机或者独立主机使用)。需要站长拥有一个 SMTP 服务器,例如新浪的 SMTP 服务器。这里说明一点:发信人邮件地址 -> 如果您填写的邮件服务器需要验证, 必须填写此服务器的邮件地址。

‘肆’ 如何在linux 下配置 SMTP 服务

Linux下的SMTP服务的配置,比较复杂一些,且各发行版本有些差异,以下是一个示例,供参考(建议使用第三个方法)

linux下smtp配置方法有几种,具体如下:
方法一,使用mail函数发送邮件;使用时时需要在本地系统上正确设置SMTP,否则将不能发送邮件。由于对系统的依赖性比较大,很多时候很不稳定,在一些提供虚拟主机服务的代理商中使用mail函数发送邮件往往很不好用,所以不推荐使用这种方法。
方法二,使用管道的形式发送邮件,主要是使用php中的popen函数。使用管道的方法发送邮件属于比较底层的操作,它取决于用户调用程序的稳定性。所以相比mail函数,这是一种可选的发送邮件的方式,但是这些本地的邮件系统都太复杂了,用户可能不会配置。
方法三(推荐),使用phpmailer。phpmailer类是一个开源的发送邮件类,可以从http://phpmailer.sourceforge.net官网下载,它含两个文件class.smtp.php和class.phpmailer.php。代码如下

include_once("class.phpmailer.php");
/**
* 定义邮件模块配制信息
*/
define("SMTP_HOST","smtp.mail.yahoo.com"); // SMTP 主机
define("SMTP_MAIL"," [email protected]"); // SMTP 用户email
define("SMTP_PASS"," XXXX"); // SMTP 用的密码

define("SERVICE_MAIL"," [email protected]"); // SMTP 用户email
define("SERVICE_NAME","PHPBOOK邮件测试"); // SMTP 用的名字

/**
* 使用phpmailer发邮件模块
*
* @param string $email
* @param string $user
* @param string $subject
* @param string $body
* @return bool
*/
function sendMail($email,$user,$subject,$body)
{
$mail = new PHPMailer();
//$this;
$mail->IsSMTP(); // 设置使用SMTP
$mail->Host = SMTP_HOST; // 设置SMTP服务器地址
$mail->SMTPAuth = true; // 打开SMTP权限验证
$mail->Username = SMTP_MAIL; // SMTP 用户名
$mail->Password = SMTP_PASS; // SMTP 服务器密码

$mail->From = SERVICE_MAIL; // 设置发送者地址
$mail->FromName = SERVICE_NAME; // 设置发送者名字
$mail->AddAddress($email, $user); // 添加接收者地址
$mail->AddReplyTo(SERVICE_MAIL, SERVICE_NAME); // 设置回复地址

$mail->WordWrap = 50; // 设置显示格式
$mail->IsHTML(true); // 设置邮件支持html
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AltBody = ""; // 文本类型的邮件

if(!$mail->Send())
{
return $mail->ErrorInfo;
}
return true;
}

//开始发送测试邮件ng: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/xiehui/admin/mail/class.smtp.php on line 89
$tomail = " [email protected]";
$user = " XXXXlinux";
$_mailSubject = "邮件测试示例!"; // 发给用户的邮件标题小组
$_mailBody = "新浪网"; // 邮件内容小组
sendMail($tomail,$user,$_mailSubject,$_mailBody);
?>

实验证明yahoo的smtp很好用,号称sina的其实并不好用,我卡在着好长时间。

方法四,给予socket编写的程序,源代码如下

使用socket发送邮件的封装类:
class sendmail{
var $lastmessage; //记录最后返回的响应信息
var $lastact; //最后的动作,字符串形式
var $welcome; //用在HELO后面,欢迎用户
var $debug; //是否显示调试信息
var $smtp; //smtp服务器
var $port; //smtp端口号
var $fp; //socket句柄
//发送邮件函数
function send_mail($smtp, $welcome="", $debug=false) {
if(empty($smtp)) die("SMTP不能为空!");
$this->smtp=$smtp;
if(empty($welcome)) {
$this->welcome=gethostbyaddr("localhost");
}else
$this->welcome=$welcome;
$this->debug=$debug;
$this->lastmessage="";
$this->lastact="";
$this->port="25";
}
//显示调试信息
function show_debug($message, $inout) {
if ($this->debug) {
if($inout=="in"){ //响应信息
$m='<< ';
}else
$m='>> ';
if(!ereg("\n$", $message))
$message .= "
";
$message=nl2br($message);
echo "${m}${message}";
}
}
//执行传递的命令
function do_command($command, $code) {
$this->lastact=$command;
$this->show_debug($this->lastact, "out");
fputs ( $this->fp, $this->lastact );
$this->lastmessage = fgets ( $this->fp, 512 );
$this->show_debug($this->lastmessage, "in");
if(!ereg("^$code", $this->lastmessage))
return false;
else
return true;
}
//邮件发送处理
function send( $to,$from,$subject,$message) {
//连接服务器
$this->lastact="connect";
$this->show_debug("连接到SMTP 服务器: ".$this->smtp, "out");
$this->fp = fsockopen ( $this->smtp, $this->port );
if ( $this->fp ) {
$this->set_socket_blocking( $this->fp, true );
$this->lastmessage=fgets($this->fp,512);
$this->show_debug($this->lastmessage, "in");
if (! ereg ( "^220", $this->lastmessage ) ) {
return false;
}else{
$this->lastact="HELO " . $this->welcome . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
$this->lastact="MAIL FROM: $from" . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
$this->lastact="RCPT TO: $to" . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
//开始发送邮件正文
$this->lastact="DATA\n";
if(!$this->do_command($this->lastact, "354")){
fclose($this->fp);
return false;
}
//开始处理邮件主题头
$head="Subject: $subject\n";
if(!empty($subject) && !ereg($head, $message)){
$message = $head.$message;
}
//开始处理邮件From头
$head="From: $from\n";
if(!empty($from) && !ereg($head, $message)) {
$message = $head.$message;
}
//开始处理邮件To头
$head="To: $to\n";
if(!empty($to) && !ereg($head, $message)) {
$message = $head.$message;
}
//处理结束串
if(!ereg("\n\.\n", $message))
$message .= "\n.\n";
$this->show_debug($message, "out");
fputs($this->fp, $message);
$this->lastact="QUIT\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
}
return true;
}else{
$this->show_debug("连接失败!!", "in");
return false;
}
}
}
?>

使用socket发送邮件示例:

include ("./sendmail.class.php");
$mail = new sendmail();
$email = "您好,这是一个测试邮件!";
$sendmail = new send_mail("smtp.mail.126.com","PHPBOOK",true); //显示调示信息
if($mail->send("[email protected]", "[email protected]", "测试SOCKET邮件", $email)) {
echo "发送成功!
";
}else{
echo "发送失败!
";
}
?>

‘伍’ php网站什么服务器系统好windows还是Linux

windows和Linux都可以的,他们各有各的好处。
1、windows服务器操作方便适用于php初学者,随着Windows Server2008服务器的普及,微软已经开发了适合于php的控件PHP Manager,可以用IIS7.5+PHP Manager+PHP5.3+Mysql5.5轻松搭建php环境,而且window是操作界面利用初学者维护和学习。
2、Linux服务器适用于php成熟者,随着linux桌面工具的普及,已不再是简单代码化,也有自己的操作桌面,而利用linux服务器是为了更好的搭建LAMP环境,而且Linux是开源免费的是代码级开发更容易实现服务的优化及适合自己的安全方案的布局,另外Linux的核心具有Windows无法比拟的稳定性和高教性,具有强大的网络服务功能,可实现各种网络服务,如邮件月匣务.Web服务.FTP.DNS.DHCP.防火墙、代理服务器、路由器等

‘陆’ linux中简述wed服务器配置过程

浅谈基于Linux的Intranet环境建造
在建设传统的Intranet网络环境的时候,我们一般是基于Windows NT Server系统的,在它的基础上实现一系列的服务。 现在的Linux系统中也包含了很多基于网络建设的软件服务,基本上我们是完全可以利用Linux系统建立与Windows NT Server所具有的基本Intranet框架相同的框架。并且还可以在这个基础上发展具有Linux系统自身特点的Intranet环境,在某种程度上其性能还优于Windows NT Server系统。
我们先假设一个基于Linux系统局域网的网络构架。首先,建议使用转换器把Internet接口转换为双绞线,直接连接到一台双网卡Server上。该Server的另外一块网卡和其他的Server及Client连接到一个Hub上面,成为一个局域网。双网卡的服务器作为防火墙和网关,控制内部网和Internet连接的安全。我们在其上面还可以运行其他的服务,例如文件服务器、代理服务器、邮件服务器和Web服务器等。另外一台服务器可以作为数据库服务器,在其上主要运行数据库服务。
双网卡中对外的网卡必须有正式的IP,另外一块网卡和其他计算机的网卡可以使用私有IP,范围从“192.168.1~192.168.254”自由分配,其他计算机的网关地址都指向防火墙网关服务器的内部IP。防火墙网关服务器的网络配置要根据申请的IP地址来具体设置。
一般地,我们要求的Intranet环境应该是提供最基础的WWW服务、FTP服务、DNS服务、网上邻居等服务项,下面我们就一一简单地介绍一下。
1.WWW服务
首先我们要实现WWW服务,我们以在RedHat系统的完全安装中为例,这里系统已经为大家安装好了目前在Internet上使用得最多的HTTP服务器Apache, 你只需要使用“setup”命令选择该服务,或者直接运行“httpd”即可。它的安装根目录是在/home/httpd/目录下的,只要使用浏览器按照“IP地址”访问你的Web server,就能够看到Apache的说明文档。如果你要发行自己的主页,只需要将这些文档放在/home/httpd/Html/下即可,或者是将httpd.conf中的文档根目录修改为你的Windows系统下的目录,这样既可以享受Linux的效率,也可享受Windows的页面制作工具的便利。但是我们要注意在Linux环境中要区分大小写,所以页面中的文件名最好统一使用大小写。在Windows环境中的页面文件一般是.htm后缀,而缺省的Linux系统的浏览器Netscap或lyxn解释的页面文件是以.html为后缀的,你只需要在/etc/mime.types中增加如下一行即可:text/html html htm。同样,你也可以按照注释修改以下配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/Access.conf
/etc/httpd/conf/srm.conf 以建立更加强大而灵活的WEB服务器。
2.FTP服务
接着让我们看看FTP服务的实现,我们依然是在RedHat系统的完全安装中,RedHat系统已经为你安装好了目前Internet流行的WU-FTP-2.4.2 Server。它的匿名访问目录在/home/ftpd/中,如果是在FTP客户端使用普通帐户登录,那么我们将直接进入该账户的主目录。它的配置文件主要是:
/ect/ftpaccess。
域名服务(DNS服务)的功能是把我们取的名字映射为具体的IP地址。目前Internet流行的域名服务器BIND,它的执行进程是“named”,其配置文件有:
/ect/named.conf
/etc/resolv.conf
/var/named/named.ca
/var/named/named.local
/var/named/named.hosts(自建)
/var/named/named.rev
其中的自建文件需要符合“named”配置文件的格式,我们从已有的文件中cp即可,尤其注意BIND 4的配置文件格式和BIND 8p是完全不同的,如果使用的版本不同的话,请查阅其具体的配置文件。
3.RAS服务
RAS服务(PPP)也是传统的服务之一,配置PPP在Linux系统中是比较复杂的一项工作。它的主要配置文件有:
/etc/mgetty+sendfax/mgetty.config
/etc/mgetty+sendfax/loging.config
/etc/inittab
/etc/ppp/options
/etc/ppp/ppplogin
/etc/ppp/options.ttyS2
/etc/ppp/pap-secrets
/etc/hosts
提醒大家的是如果使用Win95的拨号适配器的话,它的网关为拨号服务器的IP,DNS为内部网的DNS Server的IP,设置远程自动配置IP,新手可以先不启动该服务。
4.DHCP功能
DHCP的功能是动态分配IP地址。注意在启动dhcpd之前,增加一项缺省路由:/sbin/route add -host 255.255.255.255 dev eth0详细的格式可以使用“main dhcpd”得到。它的执行进程是“dhcpd”,它的配置文件有:
/etc/dhcpd.conf /etc/dhcpd.leases(空文件)
/etc/dhcpd.leases~(空文件夹)
5.网上邻居
网上邻居(smbd nmbd)也是我们很关心的功能,微软的网上邻居是局域内直接而简便的资源共享方法,但它采用的是Netbeui协议。而Linux系统采用的主要是TCP/IP协议,它提供的Samba可以方便地完成网上邻居的功能,让你的用户通过网上邻居看到你的服务器和共享的资源。其主要配置文件有:
/etc/smb.conf
/etc/smbusers
代理服务和防火墙(routed lpmasquerdde ipfwadm)的设置对于一些用户也是必要的。在Windows NT中也有“routed”命令,但要实现共享IP地址却要使用专门的代理软件,如proxy Server、 Wingate、Winproxy等。在这方面,Linux利用核心支持的“ipmasquerad”功能,配合“routet”和“ipfwadm”则可以轻松地实现这一功能,并且在使用浏览器时还不需要指定代理服务器,同时利用“ipfwadm”确定接收和发送数据包的规则,并且还可以提供基于包过滤的防火墙设施。它的主要配置命令有:
/sbin/ipfwadm -F -P deny
/sbin/ipfwadm -F -a m -s 192.168.0.0/16 -D 0.0.0.0/0
/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 130.0.40.1
6.SQL数据库系统
SQL数据库系统(postgresql)在目前的Intranet环境中是越来越重要了,但在Windows NT平台上运行的商品化的SQL数据库价格不菲。Linux系统集成的SQL数据库主要有Postgre和SQLmysql,它们均达到了SQL92的标准,并且提供在 Windows系统的客户端的ODBC驱动程序,是非常理想的后端数据库系统。PostgreSQL是普遍使用的免费SQL数据库系统之一,而且是一些商用SQL数据库的原形。尽管它可能没有现在的某些商品化SQL功能强大,并且能够处理中文,作为一般的Intranet Web数据库系统,使用它已经是绰绰有余了。它还为编制CGI程序提供了方便的接口。要访问postgreSQL可使用命令“psql”,缺省的管理员账号“postgres”是在安装后禁用的,需要给予登录权限。为了让Web客户能够访问数据库,我们需要给“nobody”用户授权。
微软的ASP技术作为IIS的模块,可以简化CGI程序的编制,提高Web服务器的效率,提供灵活的数据库连接方法。Linux系统中的Apache也有相应的PHP模块,由于Linux系统中包含有使用最广泛的CGI编程语言PERL 5,所以我们可以轻松而高效地设计CGI程序。
7.其他实现
Linux系统里还有一些对构建Intranet环境比较有用的东西,比如磁盘限额(quota)服务,使用限额机制可以控制用户对资源的拥有量,防止非法上载,是多用户环境下必须具备的功能。我们还是以RedHat为例,RedHat中启动磁盘限额方法很简单,只需要使用Linuxconf中的相应选项即可。但是你需要在实施限额的文件系统的根目录下建立“quota.user”和“quota.group”两个空文件,并且,应该在安装完系统后立即启动该服务,linuxconf程序不光可以动态配置系统,而且具有多种工作界面,极大地方便了用户配置与管理系统。为了能够运行linuxconf,我们必须以根(root)用户的身份登录Linux系统。如果你不是以根用户的身份登录系统,那么可在系统提示符下执行“su”命令,变成根用户。常见的linuxconf工作界面有:命令行界面、字符单元界面(使用了像RedHat Linux安装时的用户界面形式)、基于XWindow的界面(提供易于使用的“点击”树状菜单)。
我们以RedHat Linux 6.0系统为例,想要linuxconf在Web浏览器环境工作,必须进行以下设置:
* 在gnome-linuxconf对话框中,打开“Config/Networking/Misc/Linuxconf network access”分支,选中“Enable netwoork access”选项。
* 在对话框中输入任何允许使用Linuxconf的计算机的主机名,包括用户主机名字。
* 选择“Accept”按钮,并按空格键,单击“Quit”按钮。
* 启动Netscape浏览器,在URL栏键入:http://〈hostname〉:98/ 〈cr〉。其中,必选项“hostname”应换成用户计算机的主机名。
* 选择浏览器页面底部的“Start”按钮,在弹出的口令验证框中,分别输入根用户的名字“root”和相应的口令。如果口令正确,则进入基于Web的linuxconf工作界面。该界面主要由Config和Control两部分组成,它们各自均含有5个具有超链接特性的选项,用户单击具体的选项,即可打开对应的页面,完成相应的配置。
Linux系统中包含的“sendmail”是Internet电子邮件系统中主要的SMTP软件,“imapd”软件是POP3邮件服务器,可以让你使用Netscape或IE轻松收发电子邮件。注意,你要在/etc/sendmail.cw中添加内部域名,再将/etc/sendmail.cf中的F项修改为Fw/etc/sendmail.cw.远程登录(Telnet)。
现在有很多的关于Linux系统方方面面的文章,所以如果是要建立一个基于Linux系统的Intranet环境,还有很多的参考,而且要是想让你的Intranet环境完美起来,还有很多的服务等你实现。
(出处:http://www.hackhome.com)

‘柒’ 如何通过php发送邮件php的mail函数不能用!

支持mail的服务器 一般都是linux的 国内的好像不多
自己的电脑安装mail服务器不能往外发的 呵呵 可以自己测试用
现在很多管理系统都是用fsocketopen方式连接邮件服务器并发送邮件的 可以使用163 126的邮箱 网上有一些模型的 就像是好多管理系统后台让填入用户名和密码 就能群发一样 如果你不介意的话 给你转发一个以前我自己改过的可以利用fsocketopen方式群发或者单发email的一共三个文件
MailClass.php 》》》》》》
<?php
class Smtp
{
var $host; //主机
var $port; //端口 一般为25
var $user; //SMTP认证的帐号
var $pass; //认证密码
var $debug = false; //是否显示和服务器会话信息?
var $conn;
var $result_str; //结果
var $in; //客户机发送的命令
var $from; //收件人收到邮件显示的源信箱
var $email; //真实的地址
var $to; //目标信箱
var $subject; //主题
var $body; //内容
var $error;
var $All;
function Smtp($array)
{
$this->host = $array['host'];
$this->port = $array['port'];
$this->email= $array['trueemail'];
$this->from = $array['from'];
$this->user = base64_encode($array['username']);
$this->pass = base64_encode($array['password']);
$this->debug = $array['debug'];
$this->socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);

if($this->socket){
$this->result_str = "创建SOCKET:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失败,请检查您的网络连接和参数");

$this->conn = socket_connect($this->socket,$this->host,$this->port);
if($this->conn){
$this->result_str = "创建SOCKET连接:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失败,请检查您的网络连接和参数");

$this->result_str = "服务器应答:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);

}

function debug_show($str)
{
if($this->debug)
{
echo $str."<p>\r\n";
}
}

function setmail($to,$subject,$body){
$this->to = $to;
$this->subject = $subject;
$this->body = $body;

$All ="Content-type:text/html;charset=gb2312\r\n"; //邮件的编码方式可以根据自己的需要改
$All .= "From:".$this->from."\r\n";
$All .= "To:".$this->to."\r\n";
$All .= "Subject:".$this->subject."\r\n\r\n";
$All .= $this->body;
$this->All = $All;
}
/**
* 发送邮件部分
* 接收邮箱数组
*/
function send($toarray,$subject,$body)
{
//以下是和服务器会话
$this->in = "EHLO HELO\r\n";
$this->docommand();

$this->in = "AUTH LOGIN\r\n";
$this->docommand();

$this->in = $this->user."\r\n";
$this->docommand();

$this->in = $this->pass."\r\n";
$this->docommand();

foreach( $toarray as $to ) {
$this -> setmail($to,$subject,$body);

$this->in = "RSET\r\n";
$this->docommand();

$this->in = "MAIL FROM:<".$this->email.">\r\n";
$this->docommand();

$this->in = "RCPT TO:<".$this->to.">\r\n";
$this->docommand();

$this->in = "DATA\r\n";
$this->docommand();

$this->in = $this->All."\r\n.\r\n";
$this->docommand();
}

$this->in = "QUIT\r\n";
$this->docommand();

//结束,关闭连接
}
function docommand()
{
socket_write ($this->socket, $this->in, strlen ($this->in));
$this->debug_show("Client Action:".$this->in);
$this->result_str = "Server:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);
}
}
?>

MailConfig.inc.php 》》》》》》

<?php
$mailconfig['host'] = "smtp.126.com"; //主机
$mailconfig['port'] = "25"; //端口 一般为25
$mailconfig['trueemail'] = "[email protected]"; //真实的地址
$mailconfig['username'] = "mhz1600"; //SMTP认证的帐号
$mailconfig['password'] = "*****"; //改成自己的
$mailconfig['debug'] = false; //是否显示和服务器会话信息?
$mailconfig['from'] = "[email protected]"; //显示给用户的发件人

include_once "MailClass.php";
set_time_limit(180);
?>

SendDemo.php 》》》》》》
<?php
include_once "MailConfig.inc.php";

//简单的临时码验证 当前时间(到小时)的验证码
//if( empty($_GET['s']) || $_GET['s'] != md5(date('Y-m-d-H',time())) ) {header("http/1.1 404"); die('');}

//发送email
if( isset($_POST['sendmail']) ) {
if( isset($_POST['from']) ) $mailconfig['from'] = $_POST['from'];
$smtp = new Smtp($mailconfig);
$title = $_POST['title'];
//获取post的email正文
if( get_magic_quotes_gpc() ) $message = $_POST['message'];
else $message = addslashes($_POST['message']);

//从email列表/文档中分离出所有的email地址
$pregstr = "@[a-zA-Z0-9\_][0-9a-zA-Z\.\-\_]+\@[0-aA-Za-z\-\_]+\.[0-9a-zA-Z\.\-\_]+@is";
$temp = array();
preg_match_all($pregstr,$_POST['emails'],$temp);
$toarray = $temp[0];
//var_mp($toarray);

$smtp->send($toarray,$title,$message);

die("操作完成!<A href=".$_SERVER['PHP_SELF']."?s=".md5(date('Y-m-d-H',time())).">继续发送其他</a> <a href=# onclick=window.close()>关闭</a>");
}
else {
if( isset($_POST['emails']) ) {
if( is_array($_POST['emails']) )
$emails = implode("\t",$_POST['emails']);
else
$emails = $_POST['emails'];
}
else $emails = "";
?>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style></head>

<body>
<form id="form1" name="form1" method="post" action="">
<table width="600" border="1" align="center" cellpadding="3" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#eeeeee">
<tr>
<td width="66">发件人:</td>
<td width="516"><input name="from" type="text" value="<?php echo $mailconfig['from']; ?>"> 可以直接修改mailconfig文件中的email</td>
</tr>
<tr>
<td>邮件标题:</td>
<td><input name="title" type="text" value="邮件群发测试标题!" size="60"></td>
</tr>
<tr>
<td>收件人:<br></td>
<td><textarea name="emails" cols="60" rows="5"><?php echo $emails; ?></textarea></td>
</tr>
<tr>
<td>邮件正文:<br>
【html】</td>
<td><textarea name="message" cols="60" rows="10">邮件群发测试!谢谢~!</textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="sendmail" value=" 发送邮件 "> </td>
</tr>
</table>
</form>
<?
}
?>
</body>
</html>

使用方式 运行senddemo.php就行 确定本地或者服务器开启了fsocketopen支持 在输入框可以多种格式的的输入很多email 程序用正则表达式匹配出所有的email地址 通过服务器循环对话的方式不断的发送邮件 看看那个demo的流程就明白了
【郑重声明:mailclass修改自网上的模型 其他本人原创,版权不究 欢迎分享】

+---------------------广告-------------------------+
那一天:回忆,让生活更美好
独享人生中那个特别的日子,记录从那一天开始的幸福
http://www.nayitian.net
期待您的加入,欢迎提供宝贵的意见建议
+--------------------------------------------------+

+--------------------补充--------------------+
发送邮件的服务器(smtp)并不是网址 126发送邮件的服务器是 smtp.126.com 网易163的发送邮件服务器是 smtp.163.com 所有邮箱对于这个都有说明的 还有一个就是能够使用这个功能的好象新注册的邮箱不太好用 因为网易在2006年10对邮箱进行过调整 在此之前注册的都没问题 在这之后注册的好像开通一些其他的功能并且使用了一段时间才行的
smtp服务器的链接可以在命令提示行下测试 就是使用上面的命令:
首先 telnet smtp.126.com 25
因为smtp使用的25端口提供服务的 然后就会看到
220 126.com Anti-spam GT for Coremail System (126com[071018])
输入 EHLO HELO
服务器返回
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

输入 AUTH LOGIN
服务器返回
334 dXNlcm5hbWU6
然后再输入通过base64加密的用户名和密码 就能通过命令来和服务器对话 包括发送邮件等功能

具体的如果有兴趣更多命令自己查一下
这个php的程序就是模拟这个功能来实现的

如果你用telnet直接连不上的话 说明服务器是错误的 。。

‘捌’ linux PHPMailer 发送邮件sendmail 发邮件失败问题

1、用的腾讯云服务器,折腾了很多资料,发现改错了。谨记检查端口25开放
2、TP框架用PHPMailer 发送邮件,windows本地测试正常,上传到腾讯云linux服务器就发送不成功:
细节如下: [root@VM_82_192_centos ~]# tail -40 /var/log/maillog

把class.phpmailer.php中的$this->mailer = smtp;中的smtp换成大写:SMTP。说是因为qq 163等邮箱需要接受发送过来的大写的SMTP;
发现还是不成功
反过头来检查25端口:

发现没反应:yum重装sendmail,还是同样。直接杀到云服务器哪儿,检查25端口是否开放;泪流满面:赶紧解封。

确认:

OK,测试发送 mail -s '33333333555ksTest mail' [email protected] < /etc/passwd

‘玖’ php用smtp 发送邮件失败提示无法连接到主机

PHPMailer是一个邮件发送插件有很多朋友使用它来发邮件,但也有不少朋友在使用期PHPMailer发邮件时就碰到”SMTP 错误:无法连接到 SMTP 主机“错误了,出现这种问题我们从几个点来分享,一个是邮箱配置有问题,另一个是我们的php.ini环境中有些函数没开启导致的,下面我来给各位详细介绍一下问题的排除技巧。

方法2:使用stream_socket_client函数

一般fsockopen()被禁,pfsockopen也有可能被禁,所以这里介绍另一个函数stream_socket_client()。

stream_socket_client的参数与fsockopen有所不同,所以代码要修改为:

$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $tval);

这样就可以了。

阅读全文

与linuxphp邮件服务器相关的资料

热点内容
asp用户注册源码 浏览:48
什么是照片压缩文件 浏览:392
java调用js代码 浏览:979
昆山市民app怎么修改身份信息 浏览:779
php登陆次数 浏览:744
python字符转成数字 浏览:822
海川用的是什么服务器 浏览:376
口才是练出来的pdf 浏览:458
云服务器哪个公司性价比高 浏览:517
源码论坛打包 浏览:558
php怎么做成word 浏览:692
python批量生成密钥 浏览:492
程序员要不要考社区人员 浏览:150
app的钱怎么充q币 浏览:813
android银行卡识别 浏览:756
怎么在app投放广告 浏览:11
手机文件管理怎么看app名称 浏览:192
程序员学数学哪本书最全 浏览:789
macd实战选股公式源码 浏览:644
加密芯片的计算方法 浏览:192