如何通过电子邮件直接发送夏季笔记内容
Posted
技术标签:
【中文标题】如何通过电子邮件直接发送夏季笔记内容【英文标题】:How to send Summer note content directly via email 【发布时间】:2020-03-04 21:37:55 【问题描述】:我需要发送一封带有夏季笔记内容的邮件,我正在使用 Code Igniter loadview 方法来渲染我的邮件正文,但显示图像的文本内容不是
一旦我遇到“传输已关闭,剩余字节数要读取”的问题,我已经使用此链接修复了此问题
https://justrocketscience.com/post/php_guzzle_bug/
newsletterMail.php
<html>
<head>Mailer</head>
<?php echo $body; ?>
</html>
$view= $this->CI->load>view('admin_user/newsletterMail',$pageData,TRUE);
$headers=array(
'Authorization: Bearer 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',
'Content-Type: application/json'
);
$data=[
"personalizations"=>[
[
"to"=>$mailData['to']
]
],
"from"=>[
"email"=>"test@gmail.com"
],
"subject"=>$subject,
"content"=>[
[
"type"=>"text/html",
"value"=>$body
]
]
];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"https://api.sendgrid.com/v3/mail/send");
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($data));
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_TCP_KEEPALIVE, 10);
curl_setopt($ch,CURLOPT_TCP_KEEPIDLE, 10);
$response= curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
我需要在邮件中显示我在夏季笔记中创建的内容
有什么办法吗?
【问题讨论】:
尝试阅读CI Email Class。 【参考方案1】:除了使用 curl,您还可以使用 codeigniter 的默认电子邮件功能发送邮件,也可以使用 SMTP 协议发送邮件。检查以下代码以发送邮件。
function setProtocol()
$CI = &get_instance();
$CI->load->library('email');
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'smtp.googlemail.com',
'smtp_port' => 465, //(Port: 465 (SSL required) or 587 (TLS required))
'smtp_user' => '**************', //(your Gmail account (e.g. admin@gmail.com))
'smtp_pass' => '**************', //(your Gmail password)
'mailtype' => "html",
'charset' => 'iso-8859-1',
'wordwrap' => TRUE,
'newline' => '\r\n',
);
$CI->email->initialize($config);
return $CI;
function newsletter()
$CI = setProtocol();
$CI->email->from('admin@gmail.com');
$CI->email->subject("Enter your subject");
$CI->email->message($CI->load->view('admin_user/newsletterMail', $pageData, TRUE));
$CI->email->to('user@gmail.com');
$status = $CI->email->send();
return $status;
您也可以在全球范围内使用setProtocol()
发送其他电子邮件。
【讨论】:
我需要一次向批量用户发送邮件,使用 smtp 页面会加载太多 这是供管理员使用的吗?以上是关于如何通过电子邮件直接发送夏季笔记内容的主要内容,如果未能解决你的问题,请参考以下文章