我有一个脚本可以将Gmail中的所有电子邮件导出为文本文件.
它适用于您选择文件夹的这一行:
mail.select("inbox")
Run Code Online (Sandbox Code Playgroud)
但我不确定Gmail存档的名称是什么,其中存储了所有电子邮件.我已经尝试过存档和所有邮件和东西,但没有运气.
有谁知道正确的名字?
我正在使用 Laravel 4 生成 Google 产品提要。我使用 Blade 文件来执行此操作,但 Laravel 在输出的最开始添加了一个神秘空间,这导致 Google 拒绝 XML 文件无效。任何想法为什么?
我的控制器是:
public function googleFeed()
{
//generates a Google Merchant XML feed of products
$products = DB::table('products')->get();
$content = View::make('shop.googlefeed', ['products' => $products]);
return Response::make($content, '200')->header('Content-Type', 'text/xml');
}
Run Code Online (Sandbox Code Playgroud)
还有我的刀片文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Title</title>
<link>http://example</link>
<description>Desc</description>
@foreach ($products as $product)
<item>
<g:id>{{($product->id)}}</g:id>
<title>{{($product->productname)}}</title>
<link>http://example.com/product/{{($product->slug)}}</link>
<description>{{($product->shortdesc)}}</description>
<g:image_link>{{($product->imgurlthumb)}}</g:image_link>
<g:price>{{($product->productprice)}} GBP</g:price>
<g:gtin>{{($product->gtin)}}</g:gtin>
<g:condition>new</g:condition>
<g:availability>in stock</g:availability>
</item>
@endforeach
</channel>
</rss>
Run Code Online (Sandbox Code Playgroud)
Blade 文件中没有空间。但是,输出是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0"> …Run Code Online (Sandbox Code Playgroud) 我有一个Laravel排队的工作,它从网页中提取链接。通过Laravel Forge配置的队列侦听器的超时为240秒(4分钟)。但是,作业最多需要45分钟才能运行。
我的队列设置是:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 350,
],
Run Code Online (Sandbox Code Playgroud)
并且有多个作业流程正在运行-多达35个流程。可以想象,这正在消耗大量服务器内存。这些过程似乎一直徘徊。这些过程的命令如下所示top:
php7.1 artisan queue:work redis --once --queue=linkqueue --delay=0 --memory=128 --sleep=10 --tries=1 --env=local
Run Code Online (Sandbox Code Playgroud)
如果超时为240秒,作业如何运行45分钟?为什么会有这么多流程-不应该只有一个流程吗?
还有,为什么要提取链接的脚本要花45分钟才能运行?
该脚本确实可以正常工作,也就是说,在大多数情况下,它可以按预期运行-只是需要一段时间。据我所知,没有报告/记录错误。
工作中的代码是:
$dom = new DOMDocument;
$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
foreach ($links as $a) {
$link = $a->getAttribute('href');
$newurl = new URL;
$newurl->url = $link;
$newurl->save();
}
Run Code Online (Sandbox Code Playgroud)
更新:另一个简单的工作就可以在不到一秒钟的时间内运行良好。特别是上面的链接作业需要10分钟的时间。可能是RAM问题吗?我还能做些什么来诊断问题?作为控制台作业的一部分运行时,提取链接功能本身将在1或2秒内运行。它只是在队列中吓坏了。
我有以下代码:
import imaplib
import email
import codecs
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('email@gmail.com', 'pass')
mail.list()
mail.select("inbox")
result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())
for x in range(i):
latest_email_uid = data[0].split()[x]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
email_message = email.message_from_string(raw_email)
save_string = str("/Users/Me/Desktop/Email/" + str(x) + ".txt")
myfile = open(save_string, 'a')
myfile.write(email_message)
myfile.close()
Run Code Online (Sandbox Code Playgroud)
(我试图将所有电子邮件导出为txt文件.)
我收到了错误expected a character buffer object.
有谁知道为什么会这样?
谢谢
编辑:错误符合 myfile.write(email_message)
我正在尝试使用Eloquent查询数据库并将结果导出到电子表格中。我当前的查询很好,并且该过程有效:
$clients = Client::
select("ref as id", "title as salutation", "firstname", "surname as lastname", "tel as phone", "alttel as mobile", "email", "address1 as addressline1", "address2 as addressline2", "address3 as addressline3", "address4 as addressline4", "postcode as postalcode", "status")
->get();
Run Code Online (Sandbox Code Playgroud)
我想将字段名称作为带空格的别名。我以为我可以做以下事情之一:
"firstname as first name"
"firstname as 'first name'"
"firstname as `first name`"
'firstname as "first name"'
Run Code Online (Sandbox Code Playgroud)
或类似的东西。但是这些都不起作用。列名只是像一样返回'first。我在网上其他地方看到过一些东西,暗示MySQL应该可以实现这一点-这是一个特别的口才问题吗?
我还有其他方法需要这样做吗?
非常感谢
我想创建一个命令行应用程序,该应用程序将从 Mac OS X(以及最终其他平台)上的终端运行。
我可以制作 Python 脚本并让它在终端等中运行,但问题出现在用户身上。我希望用户像往常一样下载该应用程序并安装它,然后通过在终端中直接输入“appname”来调用该应用程序。
我该怎么办?我是否需要将我的 Python 文件包装在某种 Objective-C 迷你应用程序中并安装它?
谢谢!
我让我的Node.js应用程序在Laravel Homestead上运行正常,但现在需要将它移动到服务器上.我正在使用Laravel Forge进行服务器配置.服务器已经安装了Node并安装了所需的软件包.
在本地运行时,我可以使用Homestead http://192.168.10.10:3000来连接.地址在我的服务器上会是什么,以及如何让节点应用程序保持运行?
当我通过SSH连接时,我可以运行它,我可以看到它正在输出收到的事件.但是如何将客户端连接到它呢?我已经尝试了我的服务器的IP和域,但没有运气.
连接后,如何让节点应用程序保持运行,这样我就不需要打开SSH会话了?
非常感谢,
山姆
我需要使用jQuery检查是否检查了页面上的任何复选框.它们包含的特定复选框集无关紧要,只是其中任何一个.
有任何想法吗?
谢谢!
我有这样的一系列时间:
(
"2000-01-01 23:48:00 +0000",
"2000-01-01 02:15:00 +0000",
"2000-01-01 04:39:00 +0000",
"2000-01-01 17:23:00 +0000",
"2000-01-01 13:02:00 +0000",
"2000-01-01 21:25:00 +0000"
)
Run Code Online (Sandbox Code Playgroud)
这是从这段代码生成的:
//loop through array and convert the string times to NSDates
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"hh:mm a"];
NSMutableArray *arrayOfDatesAsDates = [NSMutableArray array];
for (NSObject* o in arrayTimes)
{
NSLog(@"%@",o);
NSDate *nsDateTime = [timeFormatter dateFromString:o];
[arrayOfDatesAsDates addObject:nsDateTime];
}
NSLog(@"times array: %@", arrayOfDatesAsDates);//
Run Code Online (Sandbox Code Playgroud)
我这样做是因为我试图在接下来的数组中获得时间.我的计划是删除过去的时间,订购它们,然后在下次使用第一个.
我怎样才能删除过去的?
谢谢
获取应用的下一个本地通知时间的最佳方法是什么?
我知道可以使用以下循环来获取通知,但是这总是按时间顺序排序,所以我可以获得item [0]的时间,还是按照添加它们的顺序?怎么可以从这个时间被拉出来?我是否需要获取完整的日期并确定时间格式,还是有更好的方法?
UIApplication *app = [UIApplication sharedApplication];
NSArray *eventArray = [app scheduledLocalNotifications];
for (int i=0; i<[eventArray count]; i++)
{
UILocalNotification* oneEvent = [eventArray objectAtIndex:i];
//oneEvent is a local notification
//get time of first one
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
山姆