php mail发送邮箱的问题?哪位大侠有什么好的方法没有?除了这个开源项目PHPMailer实现邮件发送之外,有什么其他的好的项目吗?

2010-11-05 19:55:15

6 Answers

使用SMTP协议来发送邮件吧
在CodeIgniter里面使用它内置的邮件类发送邮件

$this->load->library('email'); $to = "aa@bb.cc"; $subject = "test"; $message = "hello!"; $config["protocol"] = "smtp"; $config["smtp_host"] = "smtp.163.com"; $config["smtp_user"] = "username@163.com"; $config["smtp_pass"] = "password"; $config["mailtype"] = "html"; $config["validate"] = true; $config["priority"] = 3; $config["crlf"] = "/r/n"; $config["smtp_port"] = 25; $config["charset"] = "utf-8"; $config["wordwrap"] = TRUE; $this->email->initialize($config); $this->email->from('xxxx@163.com', 'xxxx'); $this->email->to($to); $this->email->subject($subject); $this->email->message($message); $this->email->send();

这种方式发送邮件无需装任何软件,但是需要你写更多的代码,而且要对SMTP比较熟悉。

但是如果你不自己写,而是直接使用别人写好的现成的代码的话,那这种方法无疑是最省事的:

不需要自己搭建SMTP服务器,也不需要写很多的代码。

参考:使用SMTP邮件类

2010-11-05 21:37:35

PHP的 smtp mail 类库很多,大概有将近30多种吧,究其实现,无非是 socket|curl 连接到指定的SMTP服务器上 诸如 新浪|谷歌|腾讯|163 等等...

然后通过发送 指令来传送文件,其原理 我感觉就如同 在论坛发帖子 一样,首先你要登录,然后发帖,然后得到发送响应,仅此而已,而有的MAIL库中还附带了 POP 邮件接收协议的封装库,其原理同上,区别在于POP用于接收邮件...

常用的SMTP库 有PHPMailer,其实都是一样....

我也是早前学习JAVA Mail的时候,动手实现了个迷你版本的邮件服务器,大概的原理就是这样..

2010-11-05 23:50:24

可以调用系统自带的sendmail进行发送。

2010-11-06 00:58:00

自己实现一个也容易,客户端的mailto的js方法不安全,使用PHP的mail函数发送吧。看看PHP手册,或者这个链接:http://wenku.baidu.com/view/b4cffec3d5bbfd0a7956730c.html

2010-11-06 02:22:48

大多数人都是使用PHPMailer实现php发邮件吧,其他一些项目实现原理也都是差不多的,主要是在使用是需要注意一下,可以先把要发送的邮件放到数据库中,然后再单独启一个发送邮件的进程。

2010-11-06 03:44:31

目前PHP自带的就是通过基于sendmail的mail()函数来发送邮件,不过前提是服务器上必须要安装sendmail,很多服务器空间商是没有安装sendmail邮件服务器的。所以这就有一定限制。

所以目前就有很多基于SMTP来发送邮件的开源组件,最出名的应该是是phpMailer,这个你已经知道了我就不多说了,我这里再说说其它的方法吧。
1、XPertMailer:这个也是开源的PHP发送邮件的组件,和phpMailer类似,也很方便,这里是它的官网(http://xpertmailer.sourceforge.net/),我亲自测试过,真得挺好的。

2、JMail:JMail是Windows下的组件,不过PHP支持通过COM来调用它,这也是一种解决方案吧,不过前提是Web Server如果在Windows运行倒是可以考虑,否则还是算了吧。

3、网上有很多人写的基于SMTP的mail类,也是可以用的,但是所支持功能就比较简单了。如果要求不高,也可以考虑。

4、这里还有20个比较出名开源PHP发送邮件的组件,本人没有一一测试过,不发表看法。你可以自己试试。在这里贴上地址:
介绍20个PHP发送邮件mail开源项目

2010-11-06 06:01:10
您不能回答该问题或者回答已经关闭!

相关文章推荐

  • C#中using指令的几种用法

    using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到

  • C#实例解析适配器设计模式

    将一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作

  • C#开发高性能Log Help类设计开发

    项目中要在操作数据库的异常处理中加入写Log日志,对于商业上有要求,写log时对其它操作尽可能影响小,不能因为加入log导致耗时太多

  • Async和Await使异步编程更简单

    C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作

  • C#开发中的反射机制

    反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等

  • C#运行时相互关系

    C#运行时相互关系,包括运行时类型、对象、线程栈和托管堆之间的相互关系,静态方法、实例方法和虚方法的区别等等

  • 使用托管C++粘合C#和C++代码(二)

    本文实现一下C++代码调用C#代码的过程。我构造一个简单并且直观的例子:通过C++ UI 触发C# UI.

  • C#协变和逆变

    “协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型,“逆变”则是指能够使用派生程度更小的类型

  • C#基础概念之延迟加载

    延迟加载(lazy load)是Hibernate3关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作

  • C#中的索引器的简单理解和用法

    C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作

  • 使用托管C++粘合C#和C++代码(一)

    C#在xml读写,数据库操纵,界面构造等很多方面性能卓越;C++的效率高,是底层开发的必备武器

  • 深入C# 序列化(Serialize)、反序列化(Deserialize)

    C#中的序列化和反序列化,序列化是.NET运行时环境用来支持用户定义类型的流化的机制