我正在尝试在codeigniter中发送电子邮件,这是我正在使用的一段代码。第一个注释代码打印错误,说我的应用程序没有配置发送电子邮件。
使用gmail的第二个未注释的代码工作正常,但需要显示我的电子邮件和密码。所以我有两个问题:如何在不提及密码的情况下做我想做的事情。这在软件开发中是否可以提及用户密码。感谢
/*$config = array();
$config['useragent'] = "CodeIgniter";
$config['mailpath'] = "/usr/bin/sendmail"; // or "/usr/sbin/sendmail"
$config['protocol'] = "mail";
$config['smtp_host'] = "localhost";
$config['smtp_port'] = "25";
$config['mailtype'] = 'text';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
$config['wordwrap'] = TRUE;
*/
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'myemail@gmail.com',
'smtp_pass' => 'mypass',
'mailtype' => 'text',
'starttls' => true,
'newline' => "\r\n"
);
$this->load->library('email',$config);
$email=$this->input->post("email");
$username=$this->input->post("username");
$this->email->to("receiver1@gmail.com,receiver2@gmail.com,receiver3@yahoo.fr");
$this->email->subject("Hello world");
$this->email->subject("Hello world from local pc");
$this->email->send();
$data['msg']=$this->email->print_debugger();
答案 0 :(得分:0)
1)如果不在smtp.googlemail
中使用ID和密码,则无法发送电子邮件。原因很简单。 smtp使用您的Gmail帐户发送电子邮件。所以需要id和密码。如果您不想使用您的Gmail帐户,您必须有一个邮件服务器来发送电子邮件。
2)当你不必共享包含密码等机密数据的文件时,使用google smtp就可以接受了。
答案 1 :(得分:0)
user1718215,我提出同样的问题,所以我的解决方案是:
1)当我使用mail或sendmail作为协议时,我失败了,您可以尝试使用sendemail作为协议:
$config = array();
$config['mailpath'] = "/usr/bin/sendmail";
$config['protocol'] = "sendmail";
$config['mailtype'] = 'text';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
$config['wordwrap'] = TRUE;
如果它不起作用,我建议你应该使用smtp作为协议,因为没有使用mail或sendmail作为协议失败的解决方案,也许是php的bug?
2)关于你的问题。
如何在不提及密码的情况下做我想做的事情。
如果您未能使用邮件或sendmail,则在不提及密码的情况下无法执行您想要的操作。
软件开发中是否可以提及用户密码。
提及用户密码是可以接受的。总是,在这种情况下,人们只会为发送电子邮件创建一个新的帐户,所以不要担心帐户的安全性。
3)最后,祝你好运。
答案 2 :(得分:-1)
第一个代码不起作用,因为您的localhost上没有电子邮件服务器...
首先在您的localhost上配置 Mercury 或其他一些电子邮件服务器。
您可以使用 Xampp 来安装&在本地Web服务器上配置所有(Apache,Php,Mysql,Mercury,Tomcat等)
其次,如果你想发送没有用户名和密码的电子邮件,那么它将转到垃圾/垃圾邮件 Recipent的文件夹,这是不需要的,所以在google上创建虚拟帐户并通过电子邮件发送电子邮件该帐户