GVKun编程网logo

php – 使用codeigniter电子邮件库在电子邮件上发送邀请(php发送邮箱源码)

10

此处将为大家介绍关于php–使用codeigniter电子邮件库在电子邮件上发送邀请的详细内容,并且为您解答有关php发送邮箱源码的相关问题,此外,我们还将为您介绍关于Codeigniter3应用程序

此处将为大家介绍关于php – 使用codeigniter电子邮件库在电子邮件上发送邀请的详细内容,并且为您解答有关php发送邮箱源码的相关问题,此外,我们还将为您介绍关于Codeigniter 3 应用程序错误:无法通过电子邮件发送有效链接、Codeigniter发送带有附件的电子邮件、Codeigniter在主机托管程序中发送电子邮件无法正常工作的SMTP、HTML – Codeigniter电子邮件 – 样式标签/ CSS无法正常工作的有用信息。

本文目录一览:

php – 使用codeigniter电子邮件库在电子邮件上发送邀请(php发送邮箱源码)

php – 使用codeigniter电子邮件库在电子邮件上发送邀请(php发送邮箱源码)

我想将日历邀请发送到电子邮件中.我尝试下面的代码发送ical邀请但它不起作用.

我正在使用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);

但它没有用.哪个我错过了或做错了请建议我.

我试图在电子邮件中得到低于结果

enter image description here

解决方法

这是我发送日历事件的emails_model的片段:

/**
 * @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 应用程序错误:无法通过电子邮件发送有效链接

无法发送电子邮件的问题可能有多种原因:

  1. Codeigniter 3 电子邮件库配置不正确

test:在 php 中使用内置的 email() 并测试它是否有效

  1. php 未正确配置以发送电子邮件
  2. 服务器未配置用于传递电子邮件
  3. 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();
}
  1. 服务器无法访问远程端口防火墙没有为此打开

测试:禁用防火墙或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发送带有附件的电子邮件

我正在尝试在带有附件的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在主机托管程序中发送电子邮件无法正常工作的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: &quot;Administrator&quot; &lt;admin@nvac.edu.ph&gt;
Return-Path: &lt;admin@nvac.edu.ph&gt;
Subject: =?UTF-8?Q?User=20Login=20Account=20for=20NVAC=20School?=
Reply-To: &lt;admin@nvac.edu.ph&gt;
User-Agent: CodeIgniter
X-Sender: admin@nvac.edu.ph
X-Mailer: CodeIgniter
X-Priority: 3 (normal)
Message-ID: &lt;5f79a1ed24294@nvac.edu.ph&gt;
Mime-Version: 1.0


Content-Type: multipart/alternative; boundary=&quot;B_ALT_5f79a1ed242a9&quot;

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

&lt;h1&gt;Your User login Account For NVAC PORTAL&lt;/h1&gt;=0A  &lt;p&gt; Your username :mar=
vennizonsuson@gmail.com And Password : urjdC9NkeE &lt;/p&gt;

--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无法正常工作

HTML – Codeigniter电子邮件 – 样式标签/ CSS无法正常工作

我正在尝试将特定div的innerhtml发送到电子邮件(在Codeigniter框架中).

我使用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;

            }

}

解决方法

据我所知,没有电子邮件客户端允许加载HTML电子邮件的外部样式表.

最终,这意味着您必须在文档的头部声明样式,例如

<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无法正常工作的相关知识,请在本站搜索。

本文标签: