我有一个PHP脚本,它从HTML表单中获取数据并通过SwiftMailer发送给它.当用户在输入字段(textarea)中输入撇号或引号时,电子邮件看起来像这样:
表格输入:丈夫的PLD
收到的电子邮件:丈夫的PLD
表格输入:pld的"小吃""老"
收到的电子邮件:pld \'s \"snack \"\"old \"
我的脚本中有一些验证和卫生:
if ($_POST['form_message'] != "") {
$form_message = filter_var($_POST['form_message'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
if ($_POST['form_message'] == "") {
$errors .= 'Please enter a valid comment.<br/><br/>';
}
} else {
$errors .= 'Please enter your comment.<br/>';
}
Run Code Online (Sandbox Code Playgroud)
这是Swiftmailer部分:
$message->setBody("Here is the information submitted to
Run Code Online (Sandbox Code Playgroud)
www.polycystic-kidneydisease.com/html/contact_email.php来自$ ip on $ date.\n \n -------------------------- ------ \n \n名称:$ name \n \n电子邮件地址:$ email \n \n主题:$ form_subject \n \n comment:$ form_message");
我如何解决它?谢谢!
我刚刚下载了yii-mail,并希望在我的yii应用程序中使用它,但我不知道在哪里,但文件.我试着去yii-mail页面上提供的链接上的文档,但它没有帮助.我应该把文件放在哪里,是否需要添加一些代码到应用程序,以便我可以使用邮件功能?
我在这里有一点问题,当我尝试使用swiftmailer发送电子邮件时,我收到了一个错误.
这是我的代码:
<?php
session_start();
include("config.php");
$dir = dirname(__FILE__);
$session = $_SESSION[serialize];
// Load the SwiftMailer files
require_once($dir.'/swift/swift_required.php');
$hold = 'TIDAK';
// Kondisi - Kondisi yang ada
if($_GET[phase]=='confirm'){
$to = "test@127.0.0.1";
$kalimat = "Invoice Dengan nomor ".$_GET[nosc]." Telah di confirm, mohon di cek di sistem";
$kalimat2 = "Berikut terlampir data Invoice Customer , mohon di pastikan.";
$title = "CONFIRMATION NOTIFICATION";
}
// Convert string dlu
$mailer = new Swift_Mailer(new Swift_MailTransport()); // Create new instance of SwiftMailer
$message = Swift_Message::newInstance()
->setSubject($title) // …Run Code Online (Sandbox Code Playgroud) 我有以下代码使用symfony2 swift_mailer发送电子邮件
$message = \Swift_Message::newInstance()
->setSubject('tets')
->setFrom(array('request@reqa.com' => 'Test Mail'))
->addTo('test@test.com')
->addCc('test@te.com')
->addCc('test1@test1.com')
->addCc('test2@test2.com')
->setBody($html, 'text/html');
$this->get('mailer')->send($message);
Run Code Online (Sandbox Code Playgroud)
我的问题是我从数据库加载addCc电子邮件地址,因此是否有任何方法通过分隔添加CC电子邮件地址,像这样 - > addCc('test2 @ test2.com,test4 @ test4.com')
谢谢
我在1and1主机上发送电子邮件进行故障排除.
我使用的swift邮件程序lib消息是stream_socket_client(): unable to connect to mrvnet.kundenserver.de:0 http://mrvnet.kundenserver.de:0 (Connection timed out).
有没有人有类似的麻烦?有解决方案吗
PS.在我的localhost一切都很好.
我每次尝试通过symfony 2.3.11中的swiftmailer通过谷歌应用程序帐户发送电子邮件时,都会收到以下消息
无法与主机smtp.gmail.com建立连接[php_network_getaddresses:getaddrinfo failed:名称解析#0暂时失败] 500内部服务器错误 - Swift_TransportException
我用Google搜索了但是我没有得到任何结果所以我一定做错了.
config.yml
# Swiftmailer Configuraftion swiftmailer:
transport: gmail
username: info@*******.com
password: **
Run Code Online (Sandbox Code Playgroud)
发送邮件的控制器:
/* send an email to user */
$message = \Swift_Message::newInstance()
->setSubject('Thank you')
->setFrom('info@********.com')
->setTo($email)
->setBody(
$this->renderView(
'xyProfileBundle:Mailer:thankyou.html.twig',
array('email' => $email, 'token' => $token)
)
)
->setContentType("text/html");
$this->get('mailer')->send($message);
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
在这里,我想清楚地解释我的问题
能够上传多个文件,但问题是我的邮件中没有附加文件,只接收一个附件,在服务器中所有文件都被保存
$model->attachment = UploadedFile::getInstances($model, 'attachment');
$files = '';
if ( $model->attachment )
{
foreach ($model->attachment as $file)
{
$file->saveAs('emailattachments/' .$file->baseName. '.' . $file->extension);
$files = 'emailattachments/' .$file->baseName. '.' . $file->extension;
$model->attachment = $files;
}
}
if( $model->attachment )
{
$value = Yii::$app->mailer->compose()
->setFrom([ Yii::$app->user->identity->email => 'Sample Mail'])
->setTo($model->email)
->setSubject($model->subject)
->setHtmlBody($model->content)
->attach($model->attachment)
->send();
}
Run Code Online (Sandbox Code Playgroud)
上传多个文件,但在发送邮件时,只收到一个附件本身.我该如何解决这个问题?
我尝试了几种方法,但是没有一种方法可行,包括StackOverFlow-> Swiftmailer TransportException中的一种方法被try catch块捕获了。
我需要捕获运行类Swiftmailer的实例以发送电子邮件的类的块中可能生成的异常
/**
* @throws Be msut catch swiftmailer exception Swift_TransportException because ->setTo($send_to) containt '' (not valid email sender)
* But not catch my code.
*/
$transport = \Swift_SmtpTransport::newInstance()
->setHost($settings['smtp_host'])
->setPort($settings['smtp_port'])
->setEncryption($settings['smtp_security'])
->setUsername($settings['smtp_user'])
->setPassword($settings['smtp_pass']);
$mailer = \Swift_Mailer::newInstance($transport);
echo "Verify code\n";
try {
$message = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom(array($settings['smtp_mail_sender'] => $settings['smtp_name_sender']))
->setTo($send_to)
->setBody($msg);
$result = $mailer->send($message);
} catch (\Swift_TransportException $Ste) {
echo "EROORRRRRRRRRRRRRRRRRRRR\n\n\n";
}
Run Code Online (Sandbox Code Playgroud)
在控制台上运行时显示错误
php -q cprsyncbackup.php -option param
No llegue
PHP Fatal error: …Run Code Online (Sandbox Code Playgroud) 我正在使用PHP-Mailer。它的工作正常,但发送电子邮件非常慢。就像花了一些时间来发送电子邮件一样。但是大多数情况下,花费了超过2分钟或更长时间才花费了30分钟。是否有其他电子邮件发送方法。或以任何方式在3秒钟或10秒钟内发送邮件。
$mail->Timeout = 36000;
$mail->Subject = "Registration";
$mail->From = "info@educatorguru.com";
$mail->FromName = "Educatorguru.com";
$mail->AddReplyTo( "info@educatorguru.com" );
$mail->AddAddress( $email );
$mail->Body =$message2;
$mail->IsHTML(true);
$mail->Send();
Run Code Online (Sandbox Code Playgroud) 在测试我们的邮件服务器时,我们偶然遇到了一个错误,该错误阻止了我们通过PHP发送邮件,尽管每个邮箱中的常规发送/接收都可以正常工作。我们正在运行单独的Ubuntu 18.04服务器,该服务器仅具有Mail-in-a-box,且所有必需组件都在运行。
在error.log文本文件中输出
PHP致命错误:未捕获的Swift_TransportException:预期的响应代码354,但得到的代码为“ 554”,并显示消息“ 554 5.5.1错误:没有有效的接收者\ r \ n”
PHP文件
$request_email = $_POST['request-email'];
$request_name = $_POST['request-name'];
$request_text = $_POST['request-text'];
$transport = (new Swift_SmtpTransport('data.abc.xy', 587, 'tls'))
->setUsername('contact@abc.xy')
->setPassword('*******')
->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));
$mailer = (new Swift_Mailer($transport));
$message = (new Swift_Message('Name: '. $request_name))
->setFrom(['' . $request_email => '' . $request_name])
->setTo(['contact@abc.xy'])
->setBody('E-Mail: ' . $request_email . $request_text)
->setContentType("text/html");
$result = $mailer->send($message);
Run Code Online (Sandbox Code Playgroud)
我们尝试的是重新安装所有Mail-in-a-box和所有组件,并检查所有内容是否存在拼写错误。收件人确实存在于我们的邮件服务器上,并且可以通过客户端手动接收和发送邮件。
swiftmailer ×10
php ×8
email ×2
symfony ×2
exception ×1
google-apps ×1
hosting ×1
html ×1
phpmailer ×1
smtp ×1
symfony-2.3 ×1
yii ×1
yii2 ×1