我使用Zend_Mail_Storage_Imap来访问电子邮件,但使用以下代码
$storage = new Zend_Mail_Storage_Imap($imap);
$allIds = $storage->getUniqueId(); // i get all key value pair of meesageid and uniqueid
foreach ($allIds as $k => $v)
{
echo '<li>' . htmlentities($storage->getMessage($v)->subject) . "</li>\n";
}
Run Code Online (Sandbox Code Playgroud)
我的问题是它循环并一次收到一封电子邮件,这很慢,就像每秒收到两封电子邮件一样慢,这很慢.我正在寻找这些邮件的批量撤销方法,但找不到任何.有没有人以前做过
请告诉我我做错了什么.我正在使用Zend_Mail类发送电子邮件,如下所示:
$message = <<<STR
You have a new invoice!
Sign in to your clientarea to see it.
Best regards,
Company name
STR;
$mail = new Zend_Mail();
$mail->setBodyText($message);
$mail->setFrom('billing@company.com', 'Company.com');
$mail->addTo('client@email.com', 'Client Name');
$mail->setSubject('You have a new invoice!');
$mail->send();
Run Code Online (Sandbox Code Playgroud)
虽然它是作为垃圾邮件收到的.我的服务器上还有其他应用程序,例如Webmin,它们发送的电子邮件不会被视为垃圾邮件.
我目前正在使用Zend_Mail_Storage_Imap来使用IMAP阅读电子邮件.由于文档,我能够阅读电子邮件正文(文本和HTML).
现在我想弄清楚如何保存电子邮件附件.我找不到任何解释如何转换原始内容和保存附件的内容.我怎样才能做到这一点?
我刚刚编写了一组批量电子邮件类,用于处理大量电子邮件并根据传递的参数解析其内容.如果我在我的数据库中测试1000个随机收件人和1000个随机发件人的电子邮件,直到脚本点击send()部分(我现在评论它),我获得大约2秒的性能和20 MB峰值内存,这很棒.
但是,如果我取消注释发送部分,则发送需要30秒.这是不可接受的,我想以某种方式加快速度.从测试中可以明显看出,延迟是由$ mail-> send()调用引起的,就好像它在等待它返回一些东西然后继续循环并发送下一封电子邮件一样.
我想知道的是:如何加快send()调用?我该怎么做才能让它更快?我尝试使用两种发送方法:
请注意,排队绝对是一个选项,我已经将它构建到我的课程中.所需要的只是激活一个cron,它就像一个魅力.但我想知道实际发送以及如何加快速度.所以,实际的send()调用.
任何人都可以提供一些关于如何向ZF2邮件组件添加附件的示例吗?
我喜欢:
$message = new Message;
$message->setEncoding('utf-8');
$message->setTo($email);
$message->setReplyTo($replyTo);
$message->setFrom($from);
$message->setSubject($subject);
$message->setBody($body);
Run Code Online (Sandbox Code Playgroud)
但在需要添加附件时卡住了.谢谢.
我正在使用Zend_Mail并想要自定义发件人名称.
我希望发件人姓名是FooBar爱你Ryan(其中'Ryan'被收件人姓名取代,爱你被收件人的语言替换为'loves'的翻译,就像CD Baby一样).
我试过base64_encode和mb_encode_mimeheader()以及其他类似的东西:
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
iconv_set_encoding("input_encoding", 'UTF-8');
iconv_set_encoding("output_encoding", 'UTF-8');
iconv_set_encoding("internal_encoding", 'UTF-8');
header('Content-Type:text/html; charset=' . 'UTF-8');
Run Code Online (Sandbox Code Playgroud)
它生成此作为发件人: '=?UTF-8?B?RXh0cmFidXjniLHkvaByY3dhbHNoQGV4dHJhYnV4LmNvbQ==?= <email@example.com>'
然后它出现在我的Gmail中(unknown sender).
有任何想法吗?
我尝试使用php和Zend_Mail从我们的服务器发送电子邮件.我用smtp传输.这是订阅的混乱电子邮件.但由于某种原因,我发送的电子邮件有奇怪的标题和电子邮件转到垃圾邮件文件夹(我在收到信件的gmail中看到它们):
Message-Id: <50ee94f7.84fc440a.62dc.ffff9685SMTPIN_ADDED_MISSING@mx.google.com>
Received: (qmail 10943 invoked from network); 10 Jan 2013 10:16:22 -0000
Received: from unknown (HELO searchboxindustries.com) (username@searchboxindustries.com@207.162.215.30)
Run Code Online (Sandbox Code Playgroud)
列表标题"收到:来自未知"是什么意思?可以让电子邮件发送到垃圾邮件吗?如何避免这个奇怪的标题并使电子邮件避免垃圾邮件文件夹 coode有什么问题,或者我对这个域的DNS设置有问题吗?
这是设置标题的代码:
$mailer->setFrom($params['list_email'], $params['list_from_name']);
$mailer->setReplyTo($params['list_email']);
$mailer->addHeader('Sender', $params['list_email'] . '.searchboxindustries.com');
$mailer->setReturnPath($params['list_email'] . '.searchboxindustries.com');
$mailer->addTo($params['email_address']);
Run Code Online (Sandbox Code Playgroud)
配置传输的代码:
$emailConfig = $this->getOption('email');
$transport = new Zend_Mail_Transport_Smtp($emailConfig['server'], $emailConfig);
Zend_Mail::setDefaultTransport($transport);
Run Code Online (Sandbox Code Playgroud)
来自application.ini的电子邮件配置:
email.name = searchboxindustries.com
email.server = searchboxindustries.com
email.username = user_name
email.password = password
email.auth = plain
email.port = 587
Run Code Online (Sandbox Code Playgroud)
以下是此类电子邮件的标题:
Delivered-To: gala19612009@gmail.com
Received: by 10.76.94.204 with SMTP id de12csp111150oab;
Fri, 11 Jan 2013 01:58:49 -0800 (PST) …Run Code Online (Sandbox Code Playgroud) 我想使用Gmail smtp服务器通过Zend_Mail发送电子邮件.我有这个代码
Zend_Mail::setDefaultTransport(new Zend_Mail_Transport_Smtp("smtp.googlemail.com", array(
"auth" => "login",
"username" => "myusername@gmail.com",
"password" => "mypassword",
"ssl" => "ssl",
"port" => 465
)));
Run Code Online (Sandbox Code Playgroud)
但是当我尝试发送电子邮件时,它会抛出一条Exception,并显示连接被拒绝的消息.
哪里我错了?
我正在尝试使用Zend框架中的gmail帐户发送电子邮件.这是我到目前为止所得到的:
$mailTransport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', array(
'auth' => 'login',
'username' => 'myaddress@gmail.com',
'password' => 'password',
'port' => '587',
'ssl' => 'tls',
));
Zend_Mail::setDefaultTransport($mailTransport);
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('myaddress@gmail.com', 'sender');
$mail->addTo('reciever@gmail.com', 'receiver');
$mail->setSubject('TestSubject');
$mail->send();
Run Code Online (Sandbox Code Playgroud)
使用此代码,我收到以下错误:
Message: Unable to connect via TLS
Run Code Online (Sandbox Code Playgroud)
我该如何解决?我有一个默认的XAMPP安装设置,在php.ini中没有设置SMTP.
使用Zend_Mail时添加附件的正确方法是什么?当我尝试在发送的邮件中打开附加的pdf时,我不断收到以下错误:"无法提取嵌入字体'BAAAAAA + ArialMT'.某些字符可能无法正确显示或打印." PDF仅显示表格但不显示任何字符.
这非常奇怪,因为如果我直接从服务器或我的本地主机下载它,PDF将打开.
这是我用来发送附件的代码:
$html = $view->render('email/invoice.phtml');
$mail = new Zend_Mail("utf-8");
$file = PUBLIC_PATH . DS . 'data' . DS . $invoice . '.pdf';
$at = new Zend_Mime_Part(file_get_contents($file));
$at->filename = basename($file);
$at->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
$at->encoding = Zend_Mime::ENCODING_8BIT;
$mail->addAttachment($at);
/* Here i add the attachment */
$mail->setBodyHtml($html);
$mail->addTo($order->email, 'Factura '. $invoice . ' '.Zend_Registry::get('siteName'));
$mail->setFrom('vanzari@anunt.com', Zend_Registry::get('siteName'));
$mail->setSubject('Factura '. $invoice . ' '.Zend_Registry::get('siteName'));
$mail->send();
Run Code Online (Sandbox Code Playgroud)