BlueHost香港服务器评测 常见问题 BlueHost主机如何用PHP以SMTP方式发送邮件

BlueHost主机如何用PHP以SMTP方式发送邮件

目前使用一些脚本发送邮件的方式有许多,但并不是所有人都会使用,所以小编下面就,BlueHost主机如何用PHP以SMTP方式发送邮件的方式为大家进行介绍。

具体操作方法如下:

首先在系统中添加了一个邮件账户 test,密码 123456,然后写下了如下代码:

require_once( ‘Mail.php’ );

$conf = array(

‘host’ => ‘mail.yourdomail.com’,

‘auth’ => true,

‘username’ => ‘test’,

‘password’ => ‘123456’

);

$headers[‘From’] = ‘noreply@yourdomain.com’;

$headers[‘To’] = $To;

$headers[‘Subject’] = ‘=?GB2312?B?’ . base64_encode( $Subject ) . ‘?=’;

$headers[‘Content-Type’] = ‘text/plain; charset=gb2312’;

$Mail = & Mail::factory( ‘smtp’, $conf );

$res = $Mail->send( $To, $headers, $Content );

其中$To 是指想要发送到的信箱地址,比如 foobar@gmail.com,$Subject 是邮件主题,那么$Content 是 GB2312 编码的邮件正文。结果用以上程序经过多次试验才得出在 BlueHost 主机上用 PHP 以 SMTP 方式发送邮件的正确方法,注意事项如下:

1) BlueHost 帮助信息中说跟你账户(域名)相对应的 SMTP 主机地址是 mail.yourdomain.com,但其实应该是 localhost。你用 mail.yourdomain.com 只会得到 SMTP 拒绝链接的错误信息。

2) SMTP 服务器需要验证才能发邮件。

3) SMTP 验证时用户名需要写 user+yourdomain.com,不能写 user@yourdomain.com。想想这个也好理解,在虚拟主机上一个 SMTP server 要支撑很多个账户,这种写法应该是为了区别发件的账户。

4) 邮件头中的发件邮件账户一定要是存在于系统中的真实账户,象我上面那样注册了一个 test@yourdomain.com,但是发件人账户又写 noreply@yourdomain.com 是不行的,只会得到这样的错误信息:

SMTP: Invalid response code received from server (code: 550, response: Verification failed for No Such User Here Sender verify failed)

然后只需要删掉刚才注册的 test 邮件帐号,注册一个 noreply 帐号,修改程序如下:

require_once( ‘Mail.php’ );

$conf = array(

‘host’ => ‘localhost’,

‘auth’ => true,

‘username’ => ‘noreply+yourdomain.com’,

‘password’ => ‘123456’

);

$headers[‘From’] = ‘noreply@yourdomain.com’;

$headers[‘To’] = $To;

$headers[‘Subject’] = ‘=?GB2312?B?’ . base64_encode( $Subject ) . ‘?=’;

$headers[‘Content-Type’] = ‘text/plain; charset=gb2312’;

$Mail = & Mail::factory( ‘smtp’, $conf );

$res = $Mail->send( $To, $headers, $Content );

这样BlueHost主机用PHP以SMTP方式的邮件就发送成功,由于BlueHost主机的服务器是在美国,所以发送到 GMail 信箱非常之快。

本文来自网络,不代表BlueHost香港服务器评测立场,转载请注明出处。
上一篇
下一篇
返回顶部