昨天我问了这个问题并得到了建议,并使用了它,但是由于某些原因它没有用。因此,我需要检索用户从HTML表单上载到服务器的文件的名称。我需要将此文件附加到PHP / SwiftMailer发送的电子邮件中。这是我的代码,文件上传部分:
//File upload
// Where the file is going to be placed
$target_path = "uploads/";
// Add the original filename to our target path.
//Result is "uploads/filename.extension"
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
//End of file upload
Run Code Online (Sandbox Code Playgroud)
这是文件附加部分:
//Create the attachment
$attachment = Swift_Attachment::fromPath($_FILES['uploadedfile']['tmp_name']);
Run Code Online (Sandbox Code Playgroud)
为什么不从服务器获取文件?这是错误消息,它似乎正在尝试在错误的目录中查找文件:
警告:fopen(/ tmp / phpHJdw0H)[function.fopen]:无法打开流:/home/myserver/mydomain.com/Hawaii/html/swift-mailer/lib/classes/Swift/ByteStream中没有此类文件或目录/FileByteStream.php行131上的致命错误:/home/myserver/mydomain.com/Hawaii/html/swift-mailer/lib中未捕获的异常'Swift_IoException',消息为'无法打开文件以读取[/ tmp / …
在我目前正在工作的当前项目中,我有一个symfony任务,它将一些海量数据插入数据库并运行至少半小时.当任务开始正确发送邮件通知时,问题是在执行任务时我们无法发送另一封邮件来通知处理结束.
邮件工厂当前配置了线程传送策略,但在这种特定情况下,我们希望使用sendNextImmediately()方法立即触发通知.
我正在获得例外:
[Swift_TransportException]
预期响应代码250但得到代码"451",消息"451 4.4.2超时 - 关闭连接.74sm1186065wem.17"
以及php日志文件中的流动错误:
警告:fwrite():SSL:第209行/var/www/project/lib/vendor/symfony/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php中的管道损坏
有人能帮忙吗?有什么方法可以刷新symfony邮件来建立新的连接?
我正在使用Swift Mailer检查退回邮件.我为退回邮件创建了一个单独的帐户,但是当我设置返回路径时,它不允许将退回邮件发送到该帐户.这是正常还是代码错误?
$verp = 'bounces-' . str_replace('@', '=', $row['ReplyTo']) . '@gmail.com';
$message = Swift_Message::newInstance()
->setSubject($row['Subject'])
->setFrom(array($row['ReplyTo'] => $row['FromName']))
->setReturnPath($verp)
->setBody($html, 'text/html')
->addPart($txt, 'text/plain');
Run Code Online (Sandbox Code Playgroud)
我现在正在使用VERP,它似乎是找到一个传递错误?但是不是要将邮件发送到退回邮件帐户?
在iPhone上,gpart上没有正确显示多部分消息.我有:
$message->setBody($this->body, 'text/html');
$message->addPart($this->text_body, 'plain/text');
Run Code Online (Sandbox Code Playgroud)
我也用过:
$message->addPart($this->body, 'text/html');
$message->addPart($this->text_body, 'plain/text');
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,当从iPhone上阅读gmail时,我得到的消息是"MIME附件"......没有HTML和MIME附件甚至无法读取.如果我不添加文本部分,该消息将显示正常...
有任何想法吗?
我正在从swiftmailer.org使用SwiftMailer for PHP
一切运作良好,但我想知道是否有办法将发送的邮件从SwiftMailer发送的邮件帐户添加到已发送的文件夹中?
这就是全部,祝你有个美好的一天.
我正在使用 swiftmailer 发送一封大约 300 BCC 的电子邮件。问题是,这样做时,我在客户端收到了 30 秒的超时。
在服务器端检查时,邮件发送正确,但发送所有这些电子邮件需要一些时间,因为邮件服务器处理大量电子邮件。
关于如何告诉 swiftmailer 不要等待服务器响应并呈现视图的任何想法。
我从 coockbook检查了如何假脱机电子邮件,但我不认为我需要这样做。
知道我怎么能这样做吗?先感谢您。
我想使用 gmail 的 smtp 和下面使用 Swiftmailer 发布的 PHP 脚本发送电子邮件。现在这在我自己的网络服务器上运行良好。但是当我在我为其创建它的人的网络服务器上使用它时,我得到了一个例外:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.gmail.com [Connection timed out #110]' in ...
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?我假设它与服务器设置的差异有关,因为代码在我自己的网络服务器上工作。我已经用 phpinfo() 检查了以下内容:
- Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
- OpenSSL support enabled
- OpenSSL Library Version OpenSSL 1.0.1e-fips 11 Feb 2013
Run Code Online (Sandbox Code Playgroud)
这是我的 PHP 代码:
$emailname = MY_GMAIL_ACCOUNT_USERNAME;
$emailpass = MY_GMAIL_ACCOUNT_PASSWORD;
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
->setUsername($emailname)
->setPassword($emailpass);
$mailer = Swift_Mailer::newInstance($transport);
$message = …Run Code Online (Sandbox Code Playgroud) 我可以使用swiftmailer扩展程序发送邮件.我也可以从@ app/mail文件夹中包含视图文件.
现在我想知道如何为我的模型视图包含数据,例如说我有一个Model City.php和相关视图view.php或index.php(grid-view)我如何包含在视图中呈现的数据.邮件正文中的index.php中的php(单个记录)或表数据.
简而言之,我想在视图中包含yii2中呈现的默认数据或在邮件正文中包含索引.
嗨,我看过这样的例子 - Yii::$app->mailer->compose('viewName', ['variable' => $variable])
另一个例子 - Yii::$app->mailer->compose('contact/html', ['contactForm' => $form])
我这样尝试没有取得多大成功:
Yii::$app->mailer->compose('medicine-request-entry/html',['medicine_request_entry'=>$form])
Run Code Online (Sandbox Code Playgroud)
但我得到错误未定义的变量形式. medicie_request_entry是views文件夹中的文件夹.(不在@ app/views中)
但无法得到它.假设我在/ mail /子文件夹中的视图名称是report.php,我的视图中有一个文件夹subfoler/city /和city文件夹中有view.php和index.php我如何在示例中的参数中指定它码.
任何建议将不胜感激.
谢谢.
我正在尝试使用 Laravel 中的 SwiftMailer 验证登录凭据。我需要在不实际发送电子邮件的情况下验证 SMTP 服务器的登录凭据。
我正在尝试做这样的事情:
$client = Swift_SmtpTransport::newInstance($smtpServer, $smtpPort, 'ssl');
$client->setUsername($this->smtpUser);
$client->setPassword($this->smtpPass);
$client->authenticate();
Run Code Online (Sandbox Code Playgroud)
没有authenticate()方法,Swift_SmtpTransport但如果有类似的东西我可以使用,那就太好了。
我在源代码中找不到合适的函数:https : //github.com/swiftmailer/swiftmailer/blob/master/lib/classes/Swift/Transport/AbstractSmtpTransport.php
有没有一种方法可以使用 SwiftMailer 在 SMTP 服务器上尝试验证身份验证而无需发送电子邮件?
我有一个 Symfony 3.3 应用程序,它成功地发送了一封带有附件的电子邮件。相关函数如下所示:
private function sendEmail($data)
{
$vgmsContactMail = self::contactMail;
$mailer = $this->get('mailer');
/* @var $uploadedFile UploadedFile */
$uploadedFile = $data["attachment"];
$extension = $uploadedFile->guessExtension();
if(!in_array($extension, ['pdf','rtf']) ){
die('Please upload a .pdf or .rtf file.');
}
$newFilePath = '/tmp';
$newFileName = 'temporary' . rand(0,10000) . '.rtf';
$uploadedFile->move($newFilePath, $newFileName);
$attachment = \Swift_Attachment::fromPath('/tmp/' . $newFileName);
$message = \Swift_Message::newInstance("VGMS Contact Form: ". $data["subject"])
->setFrom(array($vgmsContactMail => "Message by ".$data["name"]))
->setTo(array(
$vgmsContactMail => $vgmsContactMail
))
->setBody($data["message"]."<br>ContactMail :".$data["email"])
->attach($attachment)
;
return $mailer->send($message);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是对/tmp目录进行硬编码感觉非常脆弱。 …
swiftmailer ×10
php ×8
email ×3
symfony ×2
bounce ×1
filesystems ×1
gmail ×1
laravel ×1
performance ×1
smtp ×1
symfony1 ×1
yii2 ×1