当前位置: 首页 > 技术支持 > 服务器维护>> 虚拟主机上,怎么用PHP发邮件(虚拟主机没有邮箱服务器,怎么使用php发邮件)

虚拟主机上,怎么用PHP发邮件(虚拟主机没有邮箱服务器,怎么使用php发邮件)

虚拟主机由很多自定义函数都不支持,我是用mail发邮件。

大家好,今天小编关注到一个比较有意思的话题,就是关于虚拟主机怎么用php发邮件的问题,于是小编就整理了7个相关介绍虚拟主机怎么用php发邮件的解答,让我们一起看看吧。

虚拟主机上,怎么用PHP发邮件(虚拟主机没有邮箱服务器,怎么使用php发邮件)

文章目录:

  1. 虚拟主机上,怎么用PHP发邮件
  2. 虚拟主机没有邮箱服务器,怎么使用php发邮件
  3. 虚拟主机上,怎么用PHP发邮件
  4. 网站开发过程中使用万网虚拟主机无法发送邮件怎么办
  5. 阿里云云虚拟主机支持PHp mail 吗
  6. 请问一下,PHP配置SMTP怎么弄?
  7. 用php和stmppash发送邮件的区别

一、虚拟主机上,怎么用PHP发邮件

使用phpmailer这个库吧

虚拟主机由很多自定衫基茄义函数都不支持,我是用mail发或察邮件。

建议你下载下锋碰wordpress,然后看看wp_mail.php文件就知道了

Shenzhen Travel

虚拟主机本身不自带发邮箱功能,需要您自己购买邮箱服务器,或使用第三方接口发送邮件

二、虚拟主机没有邮箱服务器,怎么使用php发邮件

找个邮件发送类,直接用就可以了,目前qq邮箱支持smtp发信,其他的够呛

要看你的主机是否支持了,我用的是湖北数据中心的空间,是能支持的。

三、虚拟主机上,怎么用PHP发邮件

引用phpmailer即可!

无所谓虚拟主机,只要能运行PHP就行了!

四、网站开发过程中使用万网虚拟主机无法发送邮件怎么办

可以用企业邮箱发邮件。。

一般php程序开发语言使用smtp发送,自带的mail函数发送丛谨竖成功概率很低,比较常用的是使用thinkphp插件phpmailer发送。

 如果发现使用万网虚拟主机不能发送,首先登陆万网控制面板,如下图:

 输入用户名和密晌困码进入,找到左侧php.ini配置项,如下图

 启用渗大php函数fsockopen

然后保存设置,然后测试下基本就可以发送了。

不发就好了

五、阿里云云虚拟主机支持PHp mail 吗

虚拟主机或轻云服务器上目前只支持通过 fsockopen的方式发送邮件。 Zend_Mail默认的发送邮件的方式是

stream_socket_client函数发送邮件的。虚拟主机或轻云服务器乎升则禁用岁棚了此函数。 所以无笑握法直接使用 Zend_Mail发送邮件。

可以通过修改默认的 Zend_Mail发送邮件的方式,实现使用 Zend_Mail发送邮件的功能。

六、请问一下,PHP配置SMTP怎么弄?

你是不是想用PHP发送SMTP邮件?建义用SMTP的类来发比较稳妥,不会因为邮件服务器的反向解析问题而被挡回.如这样:

require_once 'include/mail.class.php'; //加载邮件发送文件

//********************初始化发邮件参数**************************//

$toemail = trim($_POST["email"]);

$subject = '秀时代用户信息';

$message = '请在三天腔拦内点击以下链接进行密码重新设定:';

$message.= 'http://www.xustar.com/index.php?module=user&action=Changepwd&uid='.$CheckObj -> _userid.'&chechcode='.$vstr;

$conf['mail'] = array(

'host' => 'smtp.163.com', //smtp服务器地址

'auth' => true, //true表示smtp服务器需要验证,false不需要

'username' => 'pzl7758', //用户名

'password' => '#######' //密码

);

//发送邮件

$headers['From'] = 'pzl7758@163.com'; //发信地址

$headers['To'] = trim($_POST["email"]); //收册圆亩信地址

$headers['Subject'] = $subject; //邮件标题

$mail_object = &Mail::factory('smtp', $conf['mail']);

//********************初始化发邮件参数**************************//

$mail_res = $mail_object->send($headers['To'], $headers, $message); //发送

if(PEAR::isError($mail_res)){ //检测错误

$errstr.="邮件发送失州森败,请检查您的邮件系统是否正常或拒收!<br><br>";

$CheckObj -> DelUserPwdCheck();

$CheckNum =3;

die($mail_res->getMessage());

}else{

$errstr.="邮件发送成功,请查收!";

$CheckNum = 2;

}

七、用php和stmppash发送邮件的区别

一、使用PHP内置的mail()函数

看了一下手册,就直接开始写代码了,如下

[php] view plain copy

<?php

$to = "test@163.com"; //收件人

$subject = "Test"; //主题

$message = "This is a test mail!"; //正文

mail($to,$subject,$message);

结果就直接报错,如下:

Warning: mail() [function.mail]: Failed to connect to mailserverat "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() inD:/www/Zend/email/email.php on line 10

看来本地需要有SMTP服务器,那就使用别人的试试吧,又改了下代码:

[php] view plain copy

<?php

$to = "test@163.com";//收件人

$subject = "Test";//邮件主题

$message = "This is a test mail!";//邮件正文

ini_set('SMTP','smtp.163.com');//发件SMTP服务器

ini_set('smtp_port',25);//发件SMTP服务器端口

ini_set('sendmail_from',"admin@163.com");//发件人邮箱

mail($to,$subject,$message);

结果还是错误:

Warning: mail() [function.mail]: SMTP server response: 553 authentication is required,smtp2,DNGowKD7v5BTDo9NnplVBA--.1171S2 1301220947 inD:/www/Zend/email/email.php on line9

看来是需要验证信息,怎么写验证信息呢?在哪里配置呢?上网找了半天也没找出个所以然,最后看了别人一些技术文章后得出结论(由于对SMTP邮件什么的不是非常了解,所以也不知道这个结论是否是正确的):使用mail()函数发送邮件就必须要有一台无需SMTP验证就可以发信的邮件服务器。但现在的SMTP邮件服务器基陪山本上都是需要验证的,所以要想使用它发邮件就只能自己在本地搭一个不需要验证的SMTP服务器。这就比较麻烦了,我是不想整,有兴趣的同学可以自己试试搭一个,用windows自带的IIS就可以,或者从网上下载其他的SMTP服务器软件,我就不多说。

结论:使用mail()函数发送邮件,就必须要有一台不需要验证的SMTP服务器。

这样的话配置工作会多一点,但是使用的时候就比较省事了,几行代码就可以。

二、使用封装SMTP协议的邮件类

这种方法就比较常见了,尤其对神档于广大自己没有服务器,从网上购买虚拟主机的同学,

第一种方法不现实,所以还是自己使用SMTP协议来发送邮件吧。

不过要完成这项工作的话,就需要你对SMTP协议有一定的了解,喜欢事必躬亲的同学可以自己动手写一个,喜欢拿来主义的同学就可以从网上下载了,有很多。

不过我比较推荐使用PEAR扩展中的Mail类,功能游乱乱强大:可以支持纯文本、HTML格式的邮件;各字段都可设置编码,正确配置不会出现中文乱码情况;可以支持附件等等。

在服务器可以使用 pear install Mail 命令快速安装,没有足够服务器权限的同学也可以直接下载类的PHP源码包含进来就可以了。

注:Mail类依赖 Net/SMTP.php 和 Mail/mime.php ,要一块下载,使用时一块包含进来。

详细安装方法可以在官网查看,http://pear.php.net/package/Mail。

下面我举例说明一下在Mail类发送邮件的方法吧,网上其他SMTP邮件类使用方法一块也类似,可以参考:

[php] view plain copy

<?php

// Pear Mail 扩展

require_once('Mail.php');

require_once('Mail/mime.php');

require_once('Net/SMTP.php');

$smtpinfo = array();

$smtpinfo["host"] = "smtp.163.com";//SMTP服务器

$smtpinfo["port"] = "25"; //SMTP服务器端口

$smtpinfo["username"] = "username@163.com"; //发件人邮箱

$smtpinfo["password"] = "password";//发件人邮箱密码

$smtpinfo["timeout"] = 10;//网络超时时间,秒

$smtpinfo["auth"] = true;//登录验证

//$smtpinfo["debug"] = true;//调试模式

// 收件人列表

$mailAddr = array('receiver@163.com');

// 发件人显示信息

$from = "Name <username@163.com>";

// 收件人显示信息

$to = implode(',',$mailAddr);

// 邮件标题

$subject = "这是一封测试邮件";

// 邮件正文

$content = "<h3>随便写点什么</h3>";

// 邮件正文类型,格式和编码

$contentType = "text/html; charset=utf-8";

//换行符号 Linux: \n Windows: \r\n

$crlf = "\n";

$mime = new Mail_mime($crlf);

$mime->setHTMLBody($content);

$param['text_charset'] = 'utf-8';

$param['html_charset'] = 'utf-8';

$param['head_charset'] = 'utf-8';

$body = $mime->get($param);

$headers = array();

$headers["From"] = $from;

$headers["To"] = $to;

$headers["Subject"] = $subject;

$headers["Content-Type"] = $contentType;

$headers = $mime->headers($headers);

$smtp =& Mail::factory("smtp", $smtpinfo);

$mail = $smtp->send($mailAddr, $headers, $body);

$smtp->disconnect();

if (PEAR::isError($mail)) {

//发送失败

echo 'Email sending failed: ' . $mail->getMessage()."\n";

}

else{

//发送成功

echo "success!\n";

}

如果从网上找的SMTP类都是高度封装的,所以使用起来比上面会更简单,但使用方法都是比较相似的。

结论:这种方式发送邮件无需装任何软件,只需要包含进来一个PHP类,然后多写几行配置代码,就可以了。并且网上有很多示例的代码,很多时候只要复制过来然后修改个别的几个参数就可以用了,所以会很方便,推荐使用此方法。

到此,以上就是小编对于虚拟主机怎么用php发邮件的问题就介绍到这了,希望介绍关于虚拟主机怎么用php发邮件的7点解答对大家有用。


服务器购买/咨询热线:1563700917115617636856

本文链接:http://www.sqxnmj.com/jishuzhichiyuweihu/11250.html
tags:
腾讯云服务器特惠

  • 关注微信
是否收录:

猜你喜欢

微信公众号