此处将为大家介绍关于php–使用codeigniter电子邮件库在电子邮件上发送邀请的详细内容,并且为您解答有关php发送邮箱源码的相关问题,此外,我们还将为您介绍关于Codeigniter3应用程序
此处将为大家介绍关于php – 使用codeigniter电子邮件库在电子邮件上发送邀请的详细内容,并且为您解答有关php发送邮箱源码的相关问题,此外,我们还将为您介绍关于Codeigniter 3 应用程序错误:无法通过电子邮件发送有效链接、Codeigniter发送带有附件的电子邮件、Codeigniter在主机托管程序中发送电子邮件无法正常工作的SMTP、HTML – Codeigniter电子邮件 – 样式标签/ CSS无法正常工作的有用信息。
本文目录一览:- php – 使用codeigniter电子邮件库在电子邮件上发送邀请(php发送邮箱源码)
- Codeigniter 3 应用程序错误:无法通过电子邮件发送有效链接
- Codeigniter发送带有附件的电子邮件
- Codeigniter在主机托管程序中发送电子邮件无法正常工作的SMTP
- HTML – Codeigniter电子邮件 – 样式标签/ CSS无法正常工作
php – 使用codeigniter电子邮件库在电子邮件上发送邀请(php发送邮箱源码)
我正在使用codeigniter Email Libraray发送电子邮件.
创建如下的ical请求
$ical = "BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT UID:" . md5(uniqid(mt_rand(),true)) . "@test.com DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z DTSTART:19970714T170000Z DTEND:19970715T035959Z SUMMARY:New event END:VEVENT END:VCALENDAR";
然后我将此内容添加到:
$this->email->set_header('Content-type','text/calendar'); $this->email->attach($ical);
但它没有用.哪个我错过了或做错了请建议我.
我试图在电子邮件中得到低于结果
解决方法
/** * @param $event * * @throws Exception */ public function calendar_event($event) { $this->load->library('email'); if (empty($event->end_dt)) { $event->end_dt = clone $event->start_dt; $event->end_dt->modify('+30 minutes'); } $location = $event->location ?? ''; $organizer = SITE_NAME; $organizer_email = Emails_dto::send_from; $cr = "\n"; /** @var DateTimeZone $tz */ $tz = $event->start_dt->getTimeZone(); $dt = new \DateTime (NULL,new DateTimeZone('UTC')); $subject = html_entity_decode($event->subject,ENT_QUOTES,'UTF-8'); $headers = 'From: ' . SITE_NAME . ' <' . Emails_dto::send_from . '>' . $cr; $headers .= "MIME-Version: 1.0{$cr}"; $headers .= "Content-Type: text/calendar; method=REQUEST;{$cr}"; $headers .= ' charset="UTF-8"' . $cr; $headers .= 'Content-transfer-encoding: 7bit' . $cr; $message = 'BEGIN:VCALENDAR' . $cr; $message .= 'PRODID:-//i3SoftWebsite//cal_events/NONSGML v1.0//EN' . $cr; $message .= 'VERSION:2.0' . $cr; $message .= 'CALSCALE:GREGORIAN' . $cr; $message .= 'METHOD:REQUEST' . $cr; $message .= 'BEGIN:VEVENT' . $cr; $message .= 'UID:' . md5(uniqid(mt_rand(),TRUE)) . '@' . SITE_DOMAIN_NAME . $cr; $message .= 'CREATED:' . $dt->format("Ymd\THis") . 'Z' . $cr; $message .= 'DTSTAMP:' . gmdate('Ymd') . 'T' . gmdate('His') . 'Z' . $cr; $message .= 'DTSTART;TZID=' . $tz->getName() . ':' . $event->start_dt->format("Ymd\THis") . $cr; $message .= 'DTEND;TZID=' . $tz->getName() . ':' . $event->end_dt->format("Ymd\THis") . $cr; $message .= "SUMMARY:{$subject}{$cr}"; $message .= "ORGANIZER;CN={$organizer}:mailto:{$organizer_email}{$cr}"; $message .= "LOCATION:{$location}{$cr}"; $message .= "SEQUENCE:0{$cr}"; $message .= 'DESCRIPTION:' . html_entity_decode($event->description,'UTF-8') . $cr; $recipients = [$event->email_to]; if (empty($event->recipients) === FALSE && is_array($event->recipients)) { foreach ($event->recipients as $recipient) { $message .= 'ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=' . $recipient['name'] . ';X-NUM-GUESTS=0:MAILTO:' . $recipient['email'] . $cr; $recipients[] = $recipient['email']; } } $message .= 'END:VEVENT' . $cr; $message .= 'END:VCALENDAR' . $cr; // @codeCoverageIgnoreStart $email_status = ENVIRONMENT === 'production' ? (int)mail($event->email_to,$subject,$message,$headers) : 0; // @codeCoverageIgnoreEnd $email = new stdClass(); $email->ema_created_dt = $dt->format(DATETIME_MysqL); $email->ema_from = $organizer_email; $email->ema_to = implode(',',$recipients); $email->ema_subject = $subject; $email->ema_body = $message; $email->ema_status = $email_status; $email->ema_body = substr($headers . $message,1431655760); // trim this to longtext. $this->add($email); }
Codeigniter 3 应用程序错误:无法通过电子邮件发送有效链接
无法发送电子邮件的问题可能有多种原因:
- Codeigniter 3 电子邮件库配置不正确
test:在 php 中使用内置的 email() 并测试它是否有效
- php 未正确配置以发送电子邮件
- 服务器未配置用于传递电子邮件
- DNS 有外部 mx 记录,本地电子邮件不会从服务器转发出去
test:使用外部 SMTP 服务器(免费的 gmail 很好)并像这样配置 ci3 库 https://forum.codeigniter.com/thread-75525-post-371979.html#pid371979
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.googlemail.com';
$config['smtp_user'] = 'your_email';
$config['smtp_pass'] = 'your_password';
$config['smtp_port'] = 465;
$config['charset'] = 'utf-8';
$config['mailtype'] = 'html';
$config['newline'] = "\r\n";
如果这不起作用,请使用
检查原因if ($this->email->send(FALSE))
{
echo $this->email->print_debugger();
}
- 服务器无法访问远程端口防火墙没有为此打开
测试:禁用防火墙或selinux并再次测试
,你是在本地运行吗?如果是这样,这可能是错误的原因。无法从本地计算机发送电子邮件。如果不检查您的托管公司是否允许您通过 php 发送邮件。大多数共享主机禁用此选项并出售 SMTP 服务以允许您发送电子邮件
,您是否尝试将视图加载到您的电子邮件功能中?然后您可以将内容传递给该文件并发送 html 电子邮件
,这就是让我醒来的原因:
public function sendResetMail()
{
// Email settings
$config['protocol'] = 'sendmail';
$config['smtp_host'] = 'mail.mydomain.com';
$config['smtp_user'] = 'myemail@mydomain.com';
$config['smtp_pass'] = '******';
$config['smtp_port'] = 465;
$config['charset'] = 'utf-8';
$config['mailtype'] = 'html';
$config['newline'] = "\r\n";
if (!$this->load->is_loaded('email')) {
$this->load->library('email',$config);
} else {
$this->email->initialize($config);
}
// Build the body and meta data of the email message
$this->email->from($this->sender_email,$this->sender_name);
$this->email->to($this->user_email);
$this->email->subject($this->subject);
$this->email->message($this->body);
if ($this->email->send()) {
$this->session->set_flashdata('reset_mail_confirm',"A pasword reset link was send to the email address $this->user_email");
} else {
$this->session->set_flashdata('reset_mail_fail',"Our atempt to send a pasword reset link to $this->user_email has failed");
}
}
Codeigniter发送带有附件的电子邮件
我正在尝试在带有附件的codeigniter上发送电子邮件。
我总是成功收到电子邮件。但是,我从未收到带有附件的文件。以下是代码,非常感谢所有评论。
$ci = get_instance(); $ci->load->library(''email''); $config[''protocol''] = "smtp"; $config[''smtp_host''] = "ssl://smtp.gmail.com"; $config[''smtp_port''] = "465"; $config[''smtp_user''] = "test@gmail.com"; $config[''smtp_pass''] = "test"; $config[''charset''] = "utf-8"; $config[''mailtype''] = "html"; $config[''newline''] = "\r\n"; $ci->email->initialize($config); $ci->email->from(''test@test.com'', ''Test Email''); $list = array(''test2@gmail.com''); $ci->email->to($list); $this->email->reply_to(''my-email@gmail.com'', ''Explendid Videos''); $ci->email->subject(''This is an email test''); $ci->email->message(''It is working. Great!''); $ci->email->attach( ''/test/myfile.pdf''); $ci->email->send();
答案1
小编典典$ this- >电子邮件-> attach()
使您可以发送附件。将文件路径/名称放在第一个参数中。注意:使用文件路径,而不是URL。对于多个附件,请多次使用该功能。例如:
public function setemail(){$email="xyz@gmail.com";$subject="some text";$message="some text";$this->sendEmail($email,$subject,$message);}public function sendEmail($email,$subject,$message) { $config = Array( ''protocol'' => ''smtp'', ''smtp_host'' => ''ssl://smtp.googlemail.com'', ''smtp_port'' => 465, ''smtp_user'' => ''abc@gmail.com'', ''smtp_pass'' => ''passwrd'', ''mailtype'' => ''html'', ''charset'' => ''iso-8859-1'', ''wordwrap'' => TRUE ); $this->load->library(''email'', $config); $this->email->set_newline("\r\n"); $this->email->from(''abc@gmail.com''); $this->email->to($email); $this->email->subject($subject); $this->email->message($message); $this->email->attach(''C:\Users\xyz\Desktop\images\abc.png''); if($this->email->send()) { echo ''Email send.''; } else { show_error($this->email->print_debugger()); } }
Codeigniter在主机托管程序中发送电子邮件无法正常工作的SMTP
如何解决Codeigniter在主机托管程序中发送电子邮件无法正常工作的SMTP?
您好,任何人都可以帮助我解决此错误,使用codeigniter EMAIL CLASS发送电子邮件 我的问题是,电子邮件发送在Hostinger上的实时服务器上不起作用,但是在本地主机XAMPP上,它们使用Codeigniter电子邮件库工作,但是在实时上却无法正常工作 这是我的错误响应显示
<div id="container">
<h1>An Error Was Encountered</h1>
<p>220 smtp.gmail.com ESMTP q9sm5357266wrd.57 - gsmtp
<br /><pre>hello: 250-smtp.gmail.com at your service,[2a02:4780:a::9]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
</pre><pre>starttls: 220 2.0.0 Ready to start TLS
</pre><pre>hello: 250-smtp.gmail.com at your service,[2a02:4780:a::9]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
</pre>Failed to authenticate password. Error: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbu
534-5.7.14 xFZbjKc3qJqbPzRmoF-qrBcojBiV4zi1yh2AdP_X-JmSPkPlo99C_Mrx-1gC-zLhYuRao
534-5.7.14 ldCCUp2nLIELg8oYFv-KQUZQrXbrBs3PO3g4n903OObkXvtKwkT6jN5Bra27WagB>
534-5.7.14 Please log in via your web browser and then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 q9sm5357266wrd.57 - gsmtp
<br />Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.<br /><pre>Date: Sun,4 Oct 2020 18:20:29 +0800
To: marvennizonsuson@gmail.com
From: "Administrator" <admin@nvac.edu.ph>
Return-Path: <admin@nvac.edu.ph>
Subject: =?UTF-8?Q?User=20Login=20Account=20for=20NVAC=20School?=
Reply-To: <admin@nvac.edu.ph>
User-Agent: CodeIgniter
X-Sender: admin@nvac.edu.ph
X-Mailer: CodeIgniter
X-Priority: 3 (normal)
Message-ID: <5f79a1ed24294@nvac.edu.ph>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="B_ALT_5f79a1ed242a9"
This is a multi-part message in MIME format.
Your email application may not support this format.
--B_ALT_5f79a1ed242a9
Content-Type: text/plain; charset=UTF-8
Content-transfer-encoding: 8bit
Your User login Account For NVAC PORTAL
Your username :marvennizonsuson@gmail.com And Password : urjdC9NkeE
--B_ALT_5f79a1ed242a9
Content-Type: text/html; charset=UTF-8
Content-transfer-encoding: quoted-printable
<h1>Your User login Account For NVAC PORTAL</h1>=0A <p> Your username :mar=
vennizonsuson@gmail.com And Password : urjdC9NkeE </p>
--B_ALT_5f79a1ed242a9--</pre></p> </div>
在这里,CODEIGNITER中的控制器上是我的PHP代码
public function Mailer($email,$pass,$data){
//Load email library
// $this->load->library(''encrypt'');
//SMTP & mail configuration
$smtp = true;
$this->load->library(''email'');
if($smtp){
$config = array(
''protocol'' => ''smtp'',''mailpath'' => "/usr/sbin/sendmail",/// ill try to remove this but did not worked
''smtp_host'' => ''smtp.gmail.com'',//optional smtp.hostinger.ph
''smtp_port'' => 587,''smtp_user'' => ''marvennkhulets@example.com'',''smtp_pass'' => ''mysecurepass'',''charset'' => ''utf-8'',''mailtype'' => ''html'',''starttls'' => true,''smtp_crypto'' => ''tls'',''newline'' => "\r\n",''crlf'' => "\r\n"
);
}else{
$config[''protocol''] = ''sendmail'';
$config[''mailpath''] = ''/usr/sbin/sendmail'';
$config[''charset''] = ''iso-8859-1'';
$config[''wordwrap''] = TRUE;
}
$this->email->initialize($config);
$this->email->set_mailtype("html");
$this->email->set_newline("\r\n");
//Email content
$htmlContent = "<h1>Your User login Account For NVAC PORTAL</h1>
<p> Your username :$email And Password : $pass </p>";
$this->email->to($email);
$this->email->from(''admin@nvac.edu.ph'',''Administrator'');
$this->email->subject(''User Login Account for NVAC School'');
$this->email->message($htmlContent);
//Send email
if($this->email->send()){
$json[''response''] = "true";
$this->Teacher_model->insertCredentialsTeacher($data);
}else{
$this->Teacher_model->insertCredentialsTeacher($data);
$json[''response''] = "false";
$json[''message''] = show_error($this->email->print_debugger());
}
echo json_encode($json);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
HTML – Codeigniter电子邮件 – 样式标签/ CSS无法正常工作
我使用jquery获取了div的内部html,并使用ajax将数据传输到控制器.
邮件工作,但我的问题是HTML类,样式标签(我在视图文件html中写的内联样式除外),样式表不起作用.
有没有办法在电子邮件内容中添加我的style.css文件?即使标签正常工作,我也会好起来的,这是我在< head>的开头放的.部分.
请帮忙,这是我的代码.
用于将html传输到控制器的Ajax代码:
<script type="text/javascript"> $(function() { $('#sendmail').click(function(e) { e.preventDefault(); $.ajax({ url:'<?PHP echo site_url();?>/welcome/send',type:'POST',data:{'message':$('#body').html(),'subject':'Subject of your e-mail'},success:function(data) { alert('You data has been successfully e-mailed'); alert('Your server-side script said: ' + data); } }); }); }); </script>
控制器中的代码
公共功能发送()
{
$nome = $this->input->post('message'); $config = array( 'protocol' => 'smtp','smtp_host' => 'send.one.com','smtp_port' => '2525','smtp_user' => 'akhil.ns@cymose-tech.com','smtp_pass' => 'akhil123','charset' => 'utf-8','wordwrap' => TRUE,'mailtype' => 'html' ); $this->load->library('email',$config); $this->email->set_newline("\r\n"); $this->email->from('akhil.ns@cymose-tech.com','The Wanderers'); $this->email->to('shabasy002@gmail.com'); $this->email->subject('The Wanderers Proforma Invoice '); $formatedMessag =''; $formatedMessag = '<html><head><link rel="stylesheet" type="text/css" href="http://localhost/study/extra/style.css"></head><body><style type="text/css">p{color:#cccccc;font-weight:bold;}</style>'; $formatedMessag .= $nome.'</body></html>'; $this->email->message($formatedMessag); if ($this->email->send()) { echo $formatedMessag; } }
解决方法
最终,这意味着您必须在文档的头部声明样式,例如
<head> <style> body { background: black; color: white; } </style> </head>
但是,一些电子邮件客户端(嗯,几乎就是outlook)甚至不允许在文档头部定义一些样式,这意味着内联样式如下:
<body></body>
(我内心的一点点就死了)
在HTML电子邮件中使用甚至内联CSS也存在许多问题,因为一些客户端(再次主要是outlook)不支持像float这样的简单CSS功能.最终意味着您必须使用表格编写新闻稿,以确保它适用于大多数人.
有关详细信息,请参阅此文章(或仅限Google):
http://www.sitepoint.com/code-html-email-newsletters/
今天关于php – 使用codeigniter电子邮件库在电子邮件上发送邀请和php发送邮箱源码的讲解已经结束,谢谢您的阅读,如果想了解更多关于Codeigniter 3 应用程序错误:无法通过电子邮件发送有效链接、Codeigniter发送带有附件的电子邮件、Codeigniter在主机托管程序中发送电子邮件无法正常工作的SMTP、HTML – Codeigniter电子邮件 – 样式标签/ CSS无法正常工作的相关知识,请在本站搜索。
本文标签: